将数据帧保存到具有特定名称的json文件,而无需在Pyspark中创建分区文件

问题描述 投票:0回答:2

我有一个数据框,我想将其编写为具有特定名称的单个 json 文件。但它正在指定的文件名内创建一个分区文件。如何让它将数据直接写入我传递给参数的文件名?下面是Python代码:

df_3.coalesce(1).write.format('json').mode('overwrite').save(filename)

数据现在已写入 mylocation.json/part-00000,我只想将其作为 mylocation.json 文件。

我将不胜感激任何帮助。

json apache-spark pyspark partitioning coalesce
2个回答
0
投票

我通常在写入之前将数据帧转换为 Pandas DataFrame。如果数据太大,无法一次性收集和写入,这就不适合。但是,如果您的数据很大,您可能应该使用分区输出而不是单个文件输出。

df_3.toPandas().to_json(filename, orient="records", lines=True)

orient
lines
设置为这些值会复制默认的 Spark 写入行为。


-1
投票

我认为您需要使用

mode('append')
来代替 – 并且无需使用合并,除非您想强制它仅在单个分区上运行:

df_3.write.format('json').mode('append').save(filename)
© www.soinside.com 2019 - 2024. All rights reserved.