Как проверить, есть ли в RDD элементы списка или нет в pyspark? - PullRequest
0 голосов
/ 21 марта 2020

У меня есть список со значениями ниже

items = [v1,v2,v3]

И у меня есть RDD со строками ниже

RDD = [('R1', {v1, v2}),
('R2', {v3}),
('R3', {v2, v3}),
]

Теперь в качестве вывода я хочу проверить, есть ли список значений RDD содержит значение списка элементов или нет. Я хочу, чтобы мой вывод был ниже синтаксиса. Если он содержит, мы добавляем «1», иначе «0» в качестве значения и элемент items в качестве ключа в словаре.

output = [('R1', {v1, 1}),('R1', {v2, 1}),
('R1', {v3, 0}),('R2', {v1, 0}),
('R2', {v2, 0}),('R2', {v3, 1}),
('R3', {v1, 0}),('R3', {v2, 1}),
('R3', {v3, 1})]

Как мне этого добиться? Спасибо.

Это то, что я пробовал.

rdd = rdd.flatMap(lambda x: ((x[0], {x[i]: 1}) for i in range(1, len(x))))

используя это, я получаю ниже заданного вывода

output = [('R1', {v1, 1}),('R1', {v2, 1}),
('R2', {v3, 1}), ('R3', {v2, 1}),
('R3', {v3, 1})]

Я могу только добавить значения, которые уже присутствует в списке RDD, но я также хочу добавить элемент, которого нет, и сопоставить его с '0'.

...