我有一個CSV文件,test.csv
:不能以星火2.x到覆蓋一個CSV文件的架構
col
1
2
3
4
當我使用的火花呢讀取,它得到數據的正確模式:
val df = spark.read.option("header", "true").option("inferSchema", "true").csv("test.csv")
df.printSchema
root
|-- col: integer (nullable = true)
但是,當我覆蓋CSV文件的schema
並使inferSchema
爲false時,則SparkSession正在部分提取自定義模式。
val df = spark.read.option("header", "true").option("inferSchema", "false").schema(StructType(List(StructField("custom", StringType, false)))).csv("test.csv")
df.printSchema
root
|-- custom: string (nullable = true)
我的意思是隻有列名(custom
)和數據類型(StringType
)越來越回升。但是,nullable
部分被忽略,因爲它仍然是nullable = true
,這是不正確的。
我無法理解此行爲。任何幫助表示讚賞!
類似的帖子在http://stackoverflow.com/questions/41705602/spark-dataframe-schema-nullable-fields – abaghel
它看起來相似!但是我能夠理解答案,爲什麼數據源可以支持可空性? – himanshuIIITian