Spark DataFrameWriterignoreNullFields 不工作

phi*_*ert 6 apache-spark apache-spark-sql

我有一个包含多个具有不同架构的空值的 DataFrame

df.show(false)
+----+----+----+----+
|col1|col2|col3|col4|
+----+----+----+----+
|null|null|1   |a   |
+----+----+----+----+
Run Code Online (Sandbox Code Playgroud)

我试图将此数据帧作为 JSON 文件写入 HDFS,但 Spark 在写入 JSON 时忽略了 null 字段。这是可以理解的,因为默认ignoreNullFields设置为true

但即使当我使用

spark.write.option("ignoreNullFields", "false").json(...)
Run Code Online (Sandbox Code Playgroud)

或者

spark.write.option("ignoreNullFields", false).json(...)
Run Code Online (Sandbox Code Playgroud)

包含空值的列将被省略。

使用该选项时我遗漏了什么吗ignoreNullFields

rap*_*auv 0

您没有正确使用ignoreNullFields选项

正确的方法是:

df.coalesce(1).write.mode('overwrite').json(ignoreNullFields=False,path="a")
Run Code Online (Sandbox Code Playgroud)

还保留仅包含空值的列