我有一个spark rdd,其中包含unicode值作为列表列表:
ex_rdd.take(5)
[[u'70450535982412348', u'1000000923', u'1'],
[u'535982417348', u'1000000923', u'1'],
[u'50535929459899', u'1000000923', u'99'],
[u'8070450535936297811', u'1000000923', u'1'],
[u'5937908667', u'1000000923', u'1']]
要将它们写入hdfs文件,它会给出unicode error
。如何将它们转换为字符串并在pyspark中有效地将它们写入文件? hdfs输出文件应如下所示 -
70450535982412348,1000000923,1
535982417348,1000000923,1
等等
答案 0 :(得分:1)
您可以将Python的join
函数用于字符串,以及pyspark.RDD对象上的map
和saveAsTextFile
操作(请参阅文档here)
ex_rdd.map(lambda L: ','.join(L)).saveAsTextFile('/path/to/hdfs/save/file')
如果我没有弄错的话,这应该可以在PySpark的早期版本(> = 1.0)上使用。
我不确定你的意思是" unicode error
"。这在Python中是个例外吗?或者这是Java内部的一个例外吗?