我有一个像这样的 rdd:
rdd = [((uid1), (product1, price1, date1)),
((uid1), (product2, price2, date2))]
我希望输出看起来像这样:
reduced_rdd = [((uid1), ((product1, price1, date1), (product2, price2, date2)))]
所以我尝试做类似的事情:
reduced_rdd = rdd.reduceByKey(lambda a,b: a+b)
但是输出不是我想要的:
reduced_rdd = [((uid1), (product1, price1, date1, product2, price2, date2))]
因为当我使用 + 运算符时这些元组连接在一起,如果我尝试将它们附加到列表中,我会得到一个丑陋的嵌套列表。 我怎样才能得到一个很好的简化 rdd,其中的值很好并且在它们自己的元组中相当?
请您参考如下方法:
请记住,只有一个元素的元组仍必须表示为 (tuple,) 因此您所要做的就是将其用作参数函数
lambda a,b: (a,) + (b,)
