将列表 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 对象的 map
和 saveAsTextFile
操作(请参阅文档here).
ex_rdd.map(lambda L: ','.join(L)).saveAsTextFile('/path/to/hdfs/save/file')
如果我没记错的话,即使是早期版本 (>= 1.0) 的 PySpark 也应该可用。
我不确定你所说的“unicode error
”是什么意思。这是 Python 中的异常吗?或者这是 Java 内部的一个例外?
我有一个 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 对象的 map
和 saveAsTextFile
操作(请参阅文档here).
ex_rdd.map(lambda L: ','.join(L)).saveAsTextFile('/path/to/hdfs/save/file')
如果我没记错的话,即使是早期版本 (>= 1.0) 的 PySpark 也应该可用。
我不确定你所说的“unicode error
”是什么意思。这是 Python 中的异常吗?或者这是 Java 内部的一个例外?