如何将多个文本文件读入单个RDD?

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


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


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


天涯尽头无女友
浏览 836回答 3
3回答

繁星点点滴滴

您可以指定整个目录,使用通配符,甚至可以使用目录和通配符的CSV。例如:sc.textFile("/my/dir1,/my/paths/part-00[0-5]*,/another/dir,/a/specific/file")正如尼克·查马斯(Nick Chammas)所指出的,这是对Hadoop的了解FileInputFormat,因此,它也适用于Hadoop(和扩展)。

12345678_0001

用法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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java