将列表unicode值的rdd列表转换为字符串

时间:2017-10-11 08:08:25

标签: python-2.7 pyspark rdd python-unicode

我有一个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 

等等

1 个答案:

答案 0 :(得分:1)

您可以将Python的join函数用于字符串,以及pyspark.RDD对象上的mapsaveAsTextFile操作(请参阅文档here

ex_rdd.map(lambda L: ','.join(L)).saveAsTextFile('/path/to/hdfs/save/file')

如果我没有弄错的话,这应该可以在PySpark的早期版本(> = 1.0)上使用。

我不确定你的意思是" unicode error"。这在Python中是个例外吗?或者这是Java内部的一个例外吗?