Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Pyspark中将成对RDD元组键转换为字符串键?_Python_Apache Spark_Pyspark_Rdd - Fatal编程技术网

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

Python 如何在Pyspark中将成对RDD元组键转换为字符串键?,python,apache-spark,pyspark,rdd,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)] 将映射到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)]

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

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)]