【发布时间】:2019-12-10 21:13:01
【问题描述】:
我有一个在某些列中包含空值的数据库,并且我正在将由数据库形成的数据框转换为 Json 文件。这里的问题是我没有得到空列。这是代码和输出:
dataFrame.show();
dataFrame.na().fill("null").coalesce(1)
.write()
.mode("append")
.format("Json")
.option("nullValue", "")
.save("D:\\XML File Testing\\"+"JsonParty1");
dataframe.show() 给出以下输出:
[![spark 处理的数据帧][1]][1]
[1]: https://i.stack.imgur.com/XxAQC.png
这是它在文件中的保存方式(我仅粘贴 1 列只是为了向您展示示例):
{"EMPNO":7839,"ENAME":"KING","JOB":"PRESIDENT","HIREDATE":"1981-11-17T00:00:00.000+05:30","SAL":5000.00,"DEPTNO":10}
您可以看到我的“MGR”和“comm”列丢失了,因为它在数据框中显示为空。令人惊讶的是,当数据帧由包含空值的文件(结构化,示例:分隔的 txt 文件)形成时,这个东西会起作用(火花数据帧将其视为空值)。尝试了各种方法,但仍然无法在 Json 文件中获取空列。任何帮助将不胜感激。
【问题讨论】:
-
感谢您的回答。我已经看过那篇文章,正如我所说,当数据帧由结构化文件制作时,na().fill("") 有效,但当数据帧由数据库制作时,同样的事情就不起作用了。
标签: java json dataframe apache-spark