2016-02-19 46 views
0

我在火花(单节点,独立)上运行pyspark作业并尝试将输出保存在本地文件系统中的文本文件中。无法将pyspark输出发送到本地文件系统中的文件

input = sc.textFile(inputfilepath) 
words = input.flatMap(lambda x: x.split()) 
wordCount = words.countByValue() 

wordCount.saveAsTextFile("file:///home/username/output.txt") 

我得到()一个错误说

AttributeError: 'collections.defaultdict' object has no attribute 'saveAsTextFile' 

基本上不管我加入“的wordCount”对象,例如收集或地图()返回相同的错误。当输出到达终端时(使用for循环),代码可以正常工作,但我无法确定将输出发送到文件时缺少的内容。

回答

1

您调用的countByValue()method正在返回字数统计字典。这只是一个标准的Python字典,并没有任何可用的Spark方法。

您可以使用your favorite method在本地保存字典。

+0

打我吧。 @Soooozer是100%正确的。 countByValue不创建新的RDD,它是一个本地字典。 –

+0

谢谢...我把它改成'map(lambda x:(str(x),1))。reduceByKey(add)'with'from operator import add' – piterd

相关问题