首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将多个文本文件读入一个RDD?

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

Stack Overflow用户
提问于 2014-06-04 13:43:34
回答 6查看 164K关注 0票数 184

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

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

我希望读取多个文件,并将它们作为单个RDD进行处理。多么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-06-04 19:35:50

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

代码语言:javascript
复制
sc.textFile("/my/dir1,/my/paths/part-00[0-5]*,/another/dir,/a/specific/file")

正如Nick Chammas指出的那样,这是对Hadoop的FileInputFormat的曝光,因此这也适用于Hadoop(和滚烫)。

票数 308
EN

Stack Overflow用户

发布于 2014-06-04 18:23:39

按如下方式使用union

代码语言:javascript
复制
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。

票数 35
EN

Stack Overflow用户

发布于 2014-11-13 12:07:16

您可以使用单个textFile调用来读取多个文件。Scala:

代码语言:javascript
复制
sc.textFile(','.join(files)) 
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24029873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档