首页 > 解决方案 > 如何使用逗号分隔存储 JSON 数据帧

问题描述

我需要将数据帧的记录写入 json 文件。如果我将数据帧写入它存储的文件中{"a":1} {"b":2},我想像这样编写数据帧[{"a":1} ,{"b":2}]。你能帮我么。提前致谢。

标签: python-3.xapache-sparkpysparkapache-spark-sqlpyspark-dataframes

解决方案


使用to_json函数创建array of json objects然后使用.saveAsTextFile保存 json 对象。

Example:

#sample dataframe
df=spark.createDataFrame([("a",1),("b",2)],["id","name"])

from pyspark.sql.functions import *

df.groupBy(lit("1")).\
agg(collect_list(struct(*[df.columns])).alias("cl")).\
select(to_json("cl").alias("jsn")).\
rdd.\
map(lambda x:x["jsn"]).\
saveAsTextFile("<path>")

cat <path>
#[{"id":"a","name":1},{"id":"b","name":2}]

推荐阅读