如何在Spark中将大量文件加载到一个RDD中

时间:2017-12-28 05:39:58

标签: apache-spark hdfs rdd

我使用saveAsTextFile方法保存RDD,但它不在文件中,而是有许多部分文件,如下图所示。

enter image description here

所以,我的问题是如何将这些文件重新加载到一个RDD中。

2 个答案:

答案 0 :(得分:0)

您正在尝试在本地使用Spark,而不是以分布式方式使用我的猜测。当您使用saveAsTextFile时,它只是使用Hadoop的文件编写器保存这些文件并为每个RDD分区创建一个文件。如果你想要一个文件,你可以做的一件事是coalesce在写入之前将分区改为1个文件。但是,如果你上一个文件夹,你会发现该文件夹的名称是你保存的名称。所以你可以sc.textFile使用相同的路径,它会再次将所有内容都拉入分区。

答案 1 :(得分:0)

你知道吗?我只是觉得它很优雅: 说您的文件全部在/ output目录中,只需使用以下命令将它们合并为一个,然后您就可以轻松地将其重新加载为一个RDD:

hadoop fs -getmerge /output /local/file/path

没什么,我是雷锋。