我在使用pyspark将文本文件保存到S3时遇到问题。我可以保存到S3,但它首先上传到S3上的_temporary,然后继续复制到目标位置。这显着增加了作业运行时间。我试图编译一个DirectFileOutputComitter,它应该直接写入预期的S3 url,但我不能让Spark使用这个类。
示例:
someRDD.saveAsTextFile(" S3A:// somebucket / savefolder&#34)
这会创建一个
S3A:// somebucket / savefolder / _temporary /
然后写入的目录,之后S3复制操作将文件移回
S3A:// somebucket / savefolder
我的问题是,是否有人拥有DirectFileOutputCommiter的工作罐,或者如果有人有解决此问题的经验。
相关链接:
答案 0 :(得分:1)
我能够通过使用Databricks的DirectOutputCommitter修补Hadoop 2.7.2并将修补的jar部署到我的spark实例来解决此问题。以下链接是带有修补罐的git仓库。