【问题标题】:How to load lots of files into one RDD in Spark如何在 Spark 中将大量文件加载到一个 RDD 中
【发布时间】:2018-06-08 16:29:48
【问题描述】:

我用saveAsTextFile的方法保存RDD,但是不是在一个文件里,而是有很多parts文件,如下图。

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

【问题讨论】:

  • 您能解释一下“如何将这些文件重新加载到一个RDD”中的“reload”到底是什么吗?你想在使用saveAsTextFile保存文件后将它们加载回RDD吗?

标签: apache-spark hdfs rdd


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你知道吗?我发现它非常优雅: 假设你的文件都在/output目录下,只需使用以下命令将它们合并为一个,然后你就可以轻松地重新加载为一个RDD:

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

    没什么大不了的,我是雷锋。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多