我正在使用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')
输出是utf-8代码,如' \ x **',它不是中文字符。我试过编码&解码,他们两个都不工作。 所以,我想知道如何处理它或saveAsTextFile()无法处理中文字符?
答案 0 :(得分:0)
counts.map(lambda x: x[0] + " " + str(x[1])).saveAsTextFile('counts')