如何使用 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对象数组,有两种方法可以做到这一点:

  1. 对于适合驱动程序 RAM 的数据,df.as[String].collect.mkString("[", ",", "]")

  2. 对于不适合驱动程序 RAM 的数据......你真的不应该这样做......但如果你绝对必须这样做,请使用 shell 操作以 [,每行输出加一个逗号,以].

  3. 结尾