将字段追加到 JSON 数据集 Java-Spark



我正在使用Java-Spark将JSON加载到Dataset中,如下所示:

Dataset<Row> df = spark.read().json(jsonFile);

假设我的 JSON 看起来像:

{
"field1":
{
"key1":"value1"
}
}

现在我想添加一个新字段,使我的 JSON 看起来像:

{
"field1":
{
"key1":"value1",
"key2":"value2"
}
}

所以我所做的是:

df = df.withColumn("field1.key2", function.lit("value2"));

但我的 JSON 看起来像:

{
"field1":
{
"key1":"value1"
},
"field1.key2":"value2"
}

那么我该如何解决呢?

谢谢。

一个选项可以是,您可以将文件读取为文本文件,在映射操作中,您可以使用创建 JSON 对象并对记录进行必要的修改,如下所示:

import org.json.JSONObject
val input = sparkSession.sparkContent.textFile("<input_file_path>")
val resultRDD = input.map(row => {
val json = new JSONObject(row)
json.getJSONObject("field1").put("key2", "value2")
json.toString
})
val resultDF = sparkSession.read.json(resultRDD)
resultDF.printSchema()

最新更新