如何使用pyspark saveAsTextFile处理中文字符

时间:2017-04-17 07:09:07

标签: python apache-spark utf-8 character

我正在使用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()无法处理中文字符?

1 个答案:

答案 0 :(得分:0)

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