为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

天涯尽头无女友 2019-10-05 15:29:50
我想从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(和扩展)。


查看完整回答
反对 回复 2019-10-05
?
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。


查看完整回答
反对 回复 2019-10-05
  • 3 回答
  • 0 关注
  • 835 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信