首页 > 解决方案 > Spark保存为JSON忽略空值

问题描述

我从 Kafka 获取 JSON 数据作为 RDD。

{id:"A",amount:"100"}
{id:"B",amount:"NULL"}

然后,使用 Spark 内置函数创建 DataFrame spark.read.json(rdd),这会给我

id|amount
 a|100
 b|NULL

schema:
  id:String
  amount:String

然后,我将金额类型转换为 Integer,然后 NULL 值自动转换为 null。所以,在输入这​​个之后,我的数据是什么样子的

id|amount
 a|100
 b|null

经过几次转换后,我再次将这些记录转换为 JSON 并写入另一个 Kafka。因此,当我将这些记录转换为 JSON 时,空值会被忽略。

{id:"a",amount:100}
{id:"b"}

在推送到 Kafka 之前,我再次将数据类型转换为字符串类型。所以,我需要输出为

{id:"a",amount:"100"}
{id:"b",amount:"NULL"}

标签: jsonapache-spark

解决方案


推荐阅读