【发布时间】:2016-07-09 19:01:28
【问题描述】:
有没有办法防止 PySpark 在将 DataFrame 写入 JSON 文件时创建多个小文件?
如果我跑:
df.write.format('json').save('myfile.json')
或
df1.write.json('myfile.json')
它创建了名为myfile 的文件夹,在其中我找到了几个名为part-*** 的小文件,HDFS 方式。是否有可能让它吐出一个文件?
【问题讨论】:
-
不,除非你想
coalesce(1)(你真的应该避免这种情况)。为什么需要这个? -
我需要从另一个 Python,非 pyspark,脚本读取文件
-
@martina 如果您有一个可以从 S3 读取的代码,那么如果您读取单个文件或几个文件,这真的很重要(假设数量足够低,因此您不会遇到不同的 S3 问题) .您可以简单地
chain阅读。 -
toPandas只是一个collect加上一些闪亮的补充。如果您可以接受collect,您可以接受toPandas。如果不是...你回到广场一。如果要在本地处理数据,那么它可能是比收集、推送和加载回更好的选择。 -
如果你需要数据为一个文件,你应该
collect他们。否则,您应该接受 Hadoop 方式。这就是使用分布式计算环境的意义所在。
标签: python amazon-s3 apache-spark pyspark apache-spark-sql