PySpark:写入时吐出单个文件,而不是多个零件文件

发布于 2021-01-29 15:58:00

当将DataFrame写入JSON文件时,有没有一种方法可以防止PySpark创建多个小文件?

如果我运行:

 df.write.format('json').save('myfile.json')

要么

df1.write.json('myfile.json')

它创建了一个名为的文件夹myfile,在其中我找到了几个名为part-***HDFS的小文件。是否可以通过某种方式吐出单个文件呢?

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    好吧,您的确切问题的答案是coalesce函数。但是,正如已经提到的那样,它根本效率不高,因为它将迫使一个工作人员读取所有数据并顺序写入。

    df.coalesce(1).write.format('json').save('myfile.json')
    

    顺便说一句,结果文件不是有效的json文件。它是每行带有json对象的文件。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看