如何在保存DataFrame时避免生成crc文件和SUCCESS文件?
我正在使用以下代码将Spark DataFrame保存到JSON文件
unzipJSON.write.mode("append").json("/home/eranw/Workspace/JSON/output/unCompressedJson.json")
输出结果是:
part-r-00000-704b5725-15ea-4705-b347-285a4b0e7fd8.part-r-00000-704b5725-15ea-4705-b347-285a4b0e7fd8.crc
part-r-00001-704b5725-15ea-4705-b347-285a4b0e7fd8
.part-r-00001-704b5725-15ea-4705-b347-285a4b0e7fd8.crc
_SUCCESS
._SUCCESS.crc
- 如何生成单个JSON文件而不是每行一个文件?
- 如何避免* crc文件?
- 如何避免SUCCESS文件?
回答:
如果要单个文件,则需要coalesce
在调用write之前对单个分区执行a操作,因此:
unzipJSON.coalesce(1).write.mode("append").json("/home/eranw/Workspace/JSON/output/unCompressedJson.json")
就个人而言,我觉得很烦人,输出文件的数量取决于你打电话之前有分区的数量write
-特别是如果你做write
了partitionBy
-但据我所知,目前没有其他办法。
我不知道是否有禁用.crc文件的方法-我不知道-但是您可以通过在Spark上下文的hadoop配置上设置以下内容来禁用_SUCCESS文件。
sc.hadoopConfiguration.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")
请注意,您可能还希望通过以下方式禁用元数据文件的生成:
sc.hadoopConfiguration.set("parquet.enable.summary-metadata", "false")
显然,产生元数据文件需要一定的时间(见本博客文章),但实际上并没有那么重要(根据此)。就个人而言,我总是禁用它们,并且没有任何问题。
以上是 如何在保存DataFrame时避免生成crc文件和SUCCESS文件? 的全部内容, 来源链接: utcz.com/qa/428389.html