Pyspark RDD:转换为字符串

时间:2015-12-10 16:53:54

标签: python apache-spark pyspark rdd

使用rddfloat = rdd.map( (float(x[0]), float(x[1])) ),我将rdd的列转换为浮点数,以便我可以用它们进行数学运算。现在我已经完成了数学计算,我想将它们转换回原来的StringType。

我试过rddstr = rddfloat((str(x [0]),str(x [1]),str(x [2]))),它确实返回一个字符串'40.745555',但这与原始的u'40.745555'不一样。它们之间有什么区别,我怎样才能将它转换回原来的状态?

1 个答案:

答案 0 :(得分:3)

我假设您使用的是Python 2.X.这意味着如果要生成unicode字符串,则需要调用unicode,如

rddstr = rddfloat( (unicode(x[0]), str(x[1]), str(x[2])) )

然而,为了更好地理解差异,我建议你在网上搜索,因为这是一个非常常见的问题。例如,以下问题中报告的一些答案可能对您来说合理:

特别是,这个答案可能会对您有所帮助:https://stackoverflow.com/a/18034409/126125