我在Python中有一个wordcount,我想在Spark上运行它,它包含多个文本文件,并得到一个输出文件,因此单词在所有文件中都被计算在内。我尝试了一些解决方案,例如找到了here和here,但它仍然提供与输入文件相同数量的输出文件。
rdd = sc.textFile("file:///path/*.txt")
input = sc.textFile(join(rdd))
或者
rdd = sc.textFile("file:///path/f0.txt,file:///path/f1.txt,...")
rdds = Seq(rdd)
input = sc.textFile(','.join(rdds))
或者
rdd = sc.textFile("file:///path/*.txt")
input = sc.union(rdd)
不要工作。有谁能提出一个解决方案,如何使几个输入文本文件的一个RDD?
提前谢谢。。。
这将加载与模式匹配的所有文件。
现在,您不需要进行任何联合。你只有一个RDD。
来问你的问题-
why are you getting many output files
。输出文件的数量取决于RDD
中partitions
的数量。运行字计数逻辑时,生成的RDD可以有多个分区。如果要将RDD保存为单个文件,请使用coalesce
或repartition
来只有一个分区。下面的代码有效,取自Examples。
相关问题 更多 >
编程相关推荐