首页 > 解决方案 > pyspark:如何使用过滤器功能将 rdd 与列表进行比较

问题描述

所以我有一个清单

list = [11, 5, 7, 2, 18]

和一个列表的 RDD

RDD = sc.parallelize([5, 4, 3, 2, 6])

我希望 RDD 上的过滤器函数返回每个元素,当与列表中的相应元素相加时,总和小于或等于 10。所以在这个例子中,我希望它返回一个元素为 4 的 RDD, 3, 2. 我该怎么做?

编辑:所以我尝试将 RDD 转换为键是索引的键值对,然后我这样做

def compare(x, list_):
    i = x[0]
    if x[1] + list_[i]) <= 10:
        return x
    
rdd_new = rdd.filter(compare)

但这似乎不起作用,因为当我rdd_new.collect()遇到一堆错误时

标签: pythonpysparkrdd

解决方案


推荐阅读