【问题标题】:how to use pyspark saveAsTextFile deal Chinese characters如何使用pyspark saveAsTextFile 处理汉字
【发布时间】:2017-04-17 07:09:07
【问题描述】:

我正在使用 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()不能处理汉字?

【问题讨论】:

    标签: python apache-spark utf-8 character


    【解决方案1】:
    counts.map(lambda x: x[0] + " " + str(x[1])).saveAsTextFile('counts')
    

    【讨论】:

    • 它有效。所以元组或列表的元素应该改成 str ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2016-07-16
    • 2018-09-07
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    相关资源
    最近更新 更多