如何使用 Spark Scala 在 JSON 元素之间添加逗号
How to add comma between JSON elements using Spark Scala
我正在将 table 数据加载到数据框中并创建多个 JSON 零件文件。数据结构很好,但是JSON中的元素没有用逗号隔开。
这是输出:
{"time_stamp":"2016-12-08 01:45:00","Temperature":0.8,"Energy":111111.5,"Net_Energy":1111.3}
{"time_stamp":"2016-12-08 02:00:00","Temperature":21.9,"Energy":222222.5,"Net_Energy":222.0}
我应该得到这样的东西:
{"time_stamp":"2016-12-08 01:45:00","Temperature":0.8,"Energy":111111.5,"Net_Energy":1111.3},
{"time_stamp":"2016-12-08 02:00:00","Temperature":21.9,"Energy":222222.5,"Net_Energy":222.0}
我该怎么做?
您的输出是正确的 JSON行输出:每行一个 JSON 记录,以换行符分隔。行之间不需要逗号。事实上,那是无效的 JSON.
如果您绝对需要将 Spark 作业的整个输出转换为单个JSON对象数组,有两种方法可以做到这一点:
对于适合驱动程序 RAM 的数据,df.as[String].collect.mkString("[", ",", "]")
。
对于不适合驱动程序 RAM 的数据......你真的不应该这样做......但如果你绝对必须这样做,请使用 shell 操作以 [
,每行输出加一个逗号,以]
.
结尾
我正在将 table 数据加载到数据框中并创建多个 JSON 零件文件。数据结构很好,但是JSON中的元素没有用逗号隔开。
这是输出:
{"time_stamp":"2016-12-08 01:45:00","Temperature":0.8,"Energy":111111.5,"Net_Energy":1111.3}
{"time_stamp":"2016-12-08 02:00:00","Temperature":21.9,"Energy":222222.5,"Net_Energy":222.0}
我应该得到这样的东西:
{"time_stamp":"2016-12-08 01:45:00","Temperature":0.8,"Energy":111111.5,"Net_Energy":1111.3},
{"time_stamp":"2016-12-08 02:00:00","Temperature":21.9,"Energy":222222.5,"Net_Energy":222.0}
我该怎么做?
您的输出是正确的 JSON行输出:每行一个 JSON 记录,以换行符分隔。行之间不需要逗号。事实上,那是无效的 JSON.
如果您绝对需要将 Spark 作业的整个输出转换为单个JSON对象数组,有两种方法可以做到这一点:
对于适合驱动程序 RAM 的数据,
df.as[String].collect.mkString("[", ",", "]")
。对于不适合驱动程序 RAM 的数据......你真的不应该这样做......但如果你绝对必须这样做,请使用 shell 操作以
[
,每行输出加一个逗号,以]
. 结尾