我想从hdfs位置读取一堆文本文件,并使用spark在迭代中对其执行映射.
JavaRDD<String> records = ctx.textFile(args[1], 1); 能够一次只读取一个文件.
我想读取多个文件并将它们作为单个RDD处理.怎么样?
我需要处理分散在各个目录中的多个文件.我想在一个RDD中加载所有这些,然后对它执行map/reduce.我看到SparkContext能够使用通配符从单个目录加载多个文件.我不知道如何从多个文件夹加载文件.
以下代码段失败:
for fileEntry in files:
fileName = basePath + "/" + fileEntry
lines = sc.textFile(fileName)
if retval == None:
retval = lines
else:
retval = sc.union(retval, lines)
Run Code Online (Sandbox Code Playgroud)
这在第三个循环上失败,并显示以下错误消息:
retval = sc.union(retval, lines)
TypeError: union() takes exactly 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)
鉴于我只提供了2个参数,这是奇怪的.任何指针赞赏.