内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我想从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。