我有一个数据帧,它有一些布尔列,这些列有时看起来是空的,就像其他数据类型的其他列一样。
我需要将这个数据帧转换为RDD,其中每一行都被转换为JSON。为此,我使用下面的代码
df.toJson().zipWithIndex()
然而,当某一行对于某一列为null时,该列不会转换为键,这会导致架构不匹配。
我尝试过处理字符串列的df.na.fill('').toJson.zipWithIndex()
,但当列是int或boolean类型时,问题仍然存在。
如何在json中保留所有列作为键,即使值为null?
谢谢!
我设法修复了它,但把它留给了任何可能需要它的人。
如果在设置spark会话时设置此属性("spark.sql.jsonGenerator.ignoreNullFields", "false")
,则spark在生成Json对象时会考虑空值。