如何使用Scala在spark中预打印JSON数据帧



我有一个数据帧,我想将其作为有效的json:写入json文件

我当前的代码看起来像:

val df: DataFrame = myFun(...)
df.toJSON.saveAsTextFile( "myFile.json" )

输出格式为:

{}{}{}

如何将文件内容组织为有效的JSON?:

[{},{},{}]

我使用Spray JSON:的解决方法

def apply(df: DataFrame): Option[String] = {
    val collectedData  = df.toJSON.coalesce(1).collect().mkString("n")
    val json = "[" + ("}n".r replaceAllIn (collectedData, "},n")) + "]"
    val pretty = json.parseJson.prettyPrint
    Some(s"$prettyn")
}

丑陋且效率低下,但如果最终结果不是大数据量,我会做我想要的事情,在这种情况下,我无论如何都不想要一个合适的json文件。

我正在使用这个(Python)

import json
from bson import json_util
from bson.json_util import dumps
with open('myJson.json', 'w') as outfile:
        json.dump(myDF, outfile)

我相信你会找到Scala的替代品。

最新更新