如何将多个文本文件读取到单个RDD中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

我想从HDFS位置读取一堆文本文件,并使用SMACK在迭代中对其执行映射。

JavaRDD<String> records = ctx.textFile(args[1], 1);一次只能读取一个文件。

我想读取多个文件,并将它们作为一个RDD处理。怎么做?

提问于
用户回答回答于

可以指定整个目录,使用通配符,甚至可以指定目录和通配符的CSV。例如:

sc.textFile("/my/dir1,/my/paths/part-00[0-5]*,/another/dir,/a/specific/file")

用户回答回答于

使用union详情如下:

val sc = new SparkContext(...)
val r1 = sc.textFile("xxx1")
val r2 = sc.textFile("xxx2")
...
val rdds = Seq(r1, r2, ...)
val bigRdd = sc.union(rdds)

然后bigRdd是所有文件的RDD。

扫码关注云+社区