У меня есть список со значениями ниже
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'.