2017-04-17 246 views
1

我使用pyspark做字數統計的事情。有很多中文單詞。我想將結果保存到文件中,但saveAsTextFile()不能將正確的中文字符寫入文件。 這是我的代碼如何使用pyspark saveAsTextFile處理中文字符

sc = SparkContext() 
# read files 
dir_path = '/Users/vera/learn/data_mining/caoz' 
file_rdd = sc.wholeTextFiles(dir_path,use_unicode=True) 
counts = file_rdd.map(lambda (k,v):v).\ 
     flatMap(lambda line:line.split('\n')).\ 
     map(lambda word:(word,1)).\ 
     reduceByKey(lambda a,b:a+b).\ 
     sortBy(lambda a: -a[1]) 
counts.saveAsTextFile('counts') 

,輸出類似 '\ X **' UTF-8編碼,它不是中國的性格。我試着編碼&解碼,他們都不工作。 所以,我想知道如何處理它或saveAsTextFile()無法處理中文字符?

回答

0
counts.map(lambda x: x[0] + " " + str(x[1])).saveAsTextFile('counts') 
+0

它的工作原理。那麼元組或列表的元素應該變成str? – vera

相關問題