我想从hdfs位置读取一堆文本文件,并使用spark在迭代中对其执行映射。JavaRDD<String> records = ctx.textFile(args[1], 1); 一次只能读取一个文件。我想读取多个文件并将它们作为单个RDD处理。怎么样?
3 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
您可以指定整个目录,使用通配符,甚至可以使用目录和通配符的CSV。例如:
sc.textFile("/my/dir1,/my/paths/part-00[0-5]*,/another/dir,/a/specific/file")
正如尼克·查马斯(Nick Chammas)所指出的,这是对Hadoop的了解FileInputFormat,因此,它也适用于Hadoop(和扩展)。
12345678_0001
TA贡献1802条经验 获得超5个赞
用法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。
添加回答
举报
0/150
提交
取消