【发布时间】:2020-07-01 19:56:06
【问题描述】:
我在我的 MongoDB 中存储了一些 JSON 文档。每个文档看起来像:{"businessData":{"capacity":{"fuelCapacity":282}, ..}。
阅读完所有文档后,我想将它们导出为有效的 JSON 文件。具体来说:
// Read JSON data from the DB
val df: DataFrame = MongoSpark.load(sparkSession, readConfig)
df.show
// Export into the file system
df.coalesce(1).write.mode(SaveMode.Overwrite).json("export.json")
// The show command only shows the .json values
+--------------------+
| businessData|
+--------------------+
|[[282],0,[true,20...|
|[[280],0,[true,20...|
|[[290],0,[true,20...|
|[[292],0,[true,20...|
|[[282],16,[true,2...|
+--------------------+
// export.json
{"businessData":{"capacity":{"fuelCapacity":282}, ..}
{"businessData":{"capacity":{"fuelCapacity":280}, ..}
{"businessData":{"capacity":{"fuelCapacity":290}, ..}
{"businessData":{"capacity":{"fuelCapacity":292}, ..}
{"businessData":{"capacity":{"fuelCapacity":282}, ..}
但是当我导出到文件系统时,我想将这 5 行组合成一个数组并添加一些自定义元数据。例如:
{
"metadata" : { "exportTime": "20/20/2020" , ...}
"allBusinessData" : [
{"businessData":{"capacity":{"fuelCapacity":282}, ..},
// all 5 rows from above
]
}
我已经看到问题 here 和 here 反对它。他们还部分回答了这个问题,因为不要向导出添加自定义 json 结构。
但是,假设这是我可以继续的唯一方法,我该怎么做?
非常感谢!
【问题讨论】:
标签: json mongodb scala apache-spark