2017-04-17 2 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