Github user gatorsmile commented on a diff in the pull request:

    https://github.com/apache/spark/pull/18865#discussion_r136708708
  
    --- Diff: 
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/json/JsonSuite.scala
 ---
    @@ -2034,4 +2034,31 @@ class JsonSuite extends QueryTest with 
SharedSQLContext with TestJsonData {
           }
         }
       }
    +
    +  test("SPARK-21610: Corrupt records are not handled properly when 
creating a dataframe " +
    +    "from a file") {
    +    withTempPath { dir =>
    +      val path = dir.getCanonicalPath
    +      val writer = new OutputStreamWriter(new FileOutputStream(path), 
StandardCharsets.UTF_8)
    +      val data =
    +        """{"field": 1}
    +          |{"field": 2}
    +          |{"field": "3"}""".stripMargin
    +      writer.write(data)
    +      writer.close()
    +
    +      val schema = new StructType()
    +        .add("field", ByteType)
    +        .add("_corrupt_record", StringType)
    +
    +      val errMsg = intercept[SparkException] {
    +        spark.read
    +          .schema(schema)
    +          .json(path)
    +          .select("_corrupt_record")
    +          .show()
    +      }.getMessage
    +      assert(errMsg.contains("'_corrupt_record' must be selected along 
with input schema."))
    +    }
    +  }
    --- End diff --
    
    It can be simplified to 
    
    ```Scala
        withTempPath { dir =>
          val path = dir.getCanonicalPath
          val data =
            """{"field": 1}
            |{"field": 2}
            |{"field": "3"}""".stripMargin
          sparkContext.parallelize(data, 1).saveAsTextFile(path)
    
          val e = intercept[SparkException] {
            spark.read.json(path).select("_corrupt_record").collect()
          }.getMessage
          assert(e.contains("'_corrupt_record' must be selected along with 
input schema."))
        }
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to