我正在使用Spark 2.3中的指定架构读取JSON文件。
我发现其中一个不可为空的列是可空的,这是不可预期的。换句话说,我没有为JSON指定架构。
见
val twitterSchema = (new StructType)
.add(StructField("id_str", StringType, false))
twitterSchema.printTreeString
root
|-- id_str: string (nullable = false) <------ False. Specified schema
val mdf = spark.read.option("multiline", "true").option("inferSchema","false").schema(twitterSchema).json("/FileStore/tables/twitter.json")
mdf.show(false)
mdf.printSchema
root
|-- id_str: string (nullable = true). <--------- True? Why?