mar*_*tin 7 python amazon-s3 apache-spark apache-spark-sql pyspark
有没有办法阻止PySpark在将DataFrame写入JSON文件时创建几个小文件?
如果我跑:
df.write.format('json').save('myfile.json')
Run Code Online (Sandbox Code Playgroud)
要么
df1.write.json('myfile.json')
Run Code Online (Sandbox Code Playgroud)
它创建了名为的文件夹myfile
,在其中我找到了几个名为part-***
HDFS的小文件.是否有可能让它吐出一个文件而不是?
the*_*olm 10
那么,你确切问题的答案就是coalesce
功能.但正如已经提到的那样它根本没有效率,因为它会迫使一个工作者获取所有数据并按顺序写入.
df.coalesce(1).write.format('json').save('myfile.json')
Run Code Online (Sandbox Code Playgroud)
PS Btw,结果文件不是有效的json文件.它是一个每行有一个json对象的文件.