如何检查RDD在pyspark中是否包含列表元素?

如何检查RDD在pyspark中是否包含列表元素?,pyspark,rdd,Pyspark,Rdd,我有一个包含以下值的列表 items = [v1,v2,v3] 我有一个RDD,下面是行 RDD = [('R1', {v1, v2}), ('R2', {v3}), ('R3', {v2, v3}), ] 现在作为输出,我想检查RDD值列表是否包含“items”列表的值。我希望我的输出符合以下语法。如果它包含,我们在字典中添加“1”,否则添加“0”作为值,添加items元素作为键 output = [('R1', {v1, 1}),('R1', {v2, 1}), ('R1', {v3,

我有一个包含以下值的列表

items = [v1,v2,v3]
我有一个RDD,下面是行

RDD = [('R1', {v1, v2}),
('R2', {v3}),
('R3', {v2, v3}),
]
现在作为输出,我想检查RDD值列表是否包含“items”列表的值。我希望我的输出符合以下语法。如果它包含,我们在字典中添加“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”。

请提供一个,并显示为您所尝试的内容。@oldwooki updated,如果您还想知道什么,请告诉我您需要用有效的python数据结构更新示例。
{v1,v2}
是一套吗?这似乎与您的示例代码不符。@Psidom这是一个列表
output=[('R1',{v1,1}),('R1',{v2,1}),('R2',{v3,1}),('R3',{v2,1}),('R3',{v3,1})]
这是您想要的吗?或者
output=[('R1',{v1:1}),('R1',{v2:1}),('R2',{v3:1}),('R3',{v2:1}),('R3',{v3:1})]