我有这个rdd
rdd = sc.parallelize(['101,2020-09-04', 30.4, 0.0, 0.0], ['101,2020-09-04', 29.5, 45, 0.0], ['102,2020-09-04', 45.2, 48, 0.0])
我是python和pyspark的新手,我只想用rdd方法解决这个问题,我知道用dataframe方法解决这个问题,但只需要用rdd方法。
我试图过滤重复的基础上计数的0.0出现在单元组/行。表示第一个元组“1012020-09-04”有2个0.0倍,第二个元组只有1个0.0倍,所以我想在这里选取第二个元组。
我的预期产出是:
[['101,2020-09-04', 29.5, 45, 0.0], ['102,2020-09-04', 45.2, 48, 0.0]]
也不希望每个元组都计数0.0,仅当id重复时才计数。
1条答案
按热度按时间gcxthw6b1#
让我们来解决这个问题。
既然公共部分分开了,我们就可以用它来
reduceByKey
,但首先我们需要一个函数来比较列表值。这就是你想要的结果。