如何在Pyspark中将Pair RDD元组键转换为字符串键?

时间:2018-12-06 20:58:33

标签: python apache-spark pyspark rdd

我已经创建了rdd,如下所示

rdd=sc.parallelize([('AA', 44),('BB', 53),(('AA', 'Bb'), 23), (('AD', 'AC'), 23),(('AA', 'BB', 'CC'), 2)])

我想将元组键转换为字符串。

我的预期输出如下new_rdd.collect()所示:

[('AA', 44),('BB', 53),('AA,Bb', 23),('AD,AC', 23),('AA,BB,CC',2)]

1 个答案:

答案 0 :(得分:0)

maprdd上,并检查每个元组中的键类型,如果键是字符串,则保留键,否则通过','连接键:

rdd.map(lambda t: (t[0] if isinstance(t[0], str) else ','.join(t[0]), t[1])).collect()
# [('AA', 44), ('BB', 53), ('AA,Bb', 23), ('AD,AC', 23), ('AA,BB,CC', 2)]