我想从hdfs位置读取一堆文本文件,并使用spark在迭代中对其执行映射。
JavaRDD<String> records = ctx.textFile(args[1], 1);
一次只能读取一个文件。
我希望读取多个文件,并将它们作为单个RDD进行处理。多么?
发布于 2014-06-04 19:35:50
你可以指定整个目录,使用通配符,甚至目录和通配符的CSV。例如:
sc.textFile("/my/dir1,/my/paths/part-00[0-5]*,/another/dir,/a/specific/file")
正如Nick Chammas指出的那样,这是对Hadoop的FileInputFormat
的曝光,因此这也适用于Hadoop(和滚烫)。
发布于 2014-06-04 18:23:39
按如下方式使用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。
发布于 2014-11-13 12:07:16
您可以使用单个textFile调用来读取多个文件。Scala:
sc.textFile(','.join(files))
https://stackoverflow.com/questions/24029873
复制相似问题