pyspark: как использовать функцию фильтра для сравнения rdd со списком - PullRequest
0 голосов
/ 14 июля 2020

Итак, у меня есть список

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

и RDD списка

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

, и я хочу, чтобы функция фильтрации RDD возвращала каждый элемент при суммировании с соответствующий элемент в списке имеет сумму, меньшую или равную 10. Итак, в этом примере я хочу, чтобы он возвращал RDD с элементами 4, 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() я получаю кучу ошибки

...