2016-02-19 90 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

相關問題