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

converting rdd list of list unicode values into string

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

等等

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

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

如果我没记错的话,即使是早期版本 (>= 1.0) 的 PySpark 也应该可用。

我不确定你所说的“unicode error”是什么意思。这是 Python 中的异常吗?或者这是 Java 内部的一个例外?