2

我正在将表数据加载到数据框中并创建多个 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}

我该怎么做呢?

4

1 回答 1

0

您的输出是正确的 JSONlines 输出:每行一个 JSON 记录,以换行符分隔。行之间不需要逗号。事实上,这将是无效的 JSON。

如果您绝对需要将Spark 作业的整个输出转换为单个 JSON 对象数组,有两种方法可以做到这一点:

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

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

于 2019-11-19T16:38:53.163 回答