Pyspark在读取Json文件时强制执行Nullability

时间:2016-08-12 19:38:45

标签: python pyspark nullable

我尝试读取json文件并使用SQLContext强制执行读取模式,但是可空性部分似乎被忽略了。 我有这样的架构:

StructType(List(StructField(some_field,StringType,false), StructField(some_other_field,StringType,false))

现在,我想读取一个json文件,并在其上强制执行该模式:

sqlc = SQLContext(sc)
df = sqlc.read.load("path/to/file", format="json", schema=schema)

字段名称和数据类型似乎工作得很好,但无论我为什么都为可空性,所有列都具有nullable = true:

root
 |--some_field: string (nullable = true)
 |--some_other_field: string (nullable = true)

如何在读取时对我的列强制执行可空性?

FYI。我正在使用Python 2.7,pyspark 1.5.2

1 个答案:

答案 0 :(得分:0)

根据我发现的研究,这是Spark中的一个错误,直到Spark 2.0.0才得到解决。我很乐意,如果使用Spark 2.0.0或更高版本的人可以确认此错误已得到修复,但在此之前,这是Apache Jira票证,讨论该问题:

https://issues.apache.org/jira/browse/SPARK-11319