Spark saveAsTextFile写入空文件 - _ $ folder $到S3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark saveAsTextFile写入空文件 - _ $ folder $到S3相关的知识,希望对你有一定的参考价值。
rdd.saveAsTextFile("s3n://bucket-name/path)
正在创建一个文件夹名为空的文件 - [folder-name]_$folder$
好像这个空文件被hadoop-aws jar (of org.apache.hadoop)
用来模仿S3文件系统作为hadoop文件系统。
但是,我的应用程序将数千个文件写入S3。由于saveAsTextFile
创建文件夹(从给定路径)来写入数据(来自rdd),我的应用程序最终创建了数千个这些空文件 - [directory-name]_$folder$
。
有没有办法让rdd.saveAsTextFile
不写这些空文件?
停止使用s3n,切换到s3a。它更快,实际支持。这将使这个问题消失,以及阅读大型Parquet / ORC文件的残余性能问题。
此外,如果您的应用在S3中创建了数千个小文件,则会产生未来的性能问题:在S3上列出和打开文件的速度很慢。尝试将源数据组合成更大的列式格式文件,并使用框架所具有的任何SELECT机制来只读取您想要的位
以上是关于Spark saveAsTextFile写入空文件 - _ $ folder $到S3的主要内容,如果未能解决你的问题,请参考以下文章
Spark 'saveAsTextFile' 到 S3:无法控制带有 'coalesce' 的文件数量
Spark SQL - 如何将 DataFrame 写入文本文件?
如何从 spark rdd map 和 reduce 操作写入单个文件