将字段附加到 JSON 数据集 Java-Spark
Posted
技术标签:
【中文标题】将字段附加到 JSON 数据集 Java-Spark【英文标题】:Append fields to JSON dataset Java-Spark 【发布时间】:2018-09-04 10:01:16 【问题描述】:我正在使用 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"
那我该如何解决呢?
谢谢。
【问题讨论】:
How to add a constant column in a Spark DataFrame?的可能重复 【参考方案1】:一个选项可以是,您可以将文件作为文本文件读取,在映射操作中,您可以使用创建 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()
【讨论】:
我可以使用 Spark 数据集吗? 我暂时没有解决方案,要以 Spark 数据集的方式实现这一点,有一个相同的公开票,以防你想check以上是关于将字段附加到 JSON 数据集 Java-Spark的主要内容,如果未能解决你的问题,请参考以下文章