更新RDD-pysp中的字典值

2024-05-15 20:27:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个RDD,其中每个元素都是一个字典。在

在rdd.take公司(二)

[{'actor': 'brad',
  'good': 1,
  'bad': 0,
  'average': 0,}
 {'actor': 'tom',
  'good': 0,
  'bad': 1,
  'average': 1,}]

我有一个字典的列表:

d2:

^{pr2}$

我想把d2的值赋给Rdd。在

Rdd和d2的长度相同。RDD中的每个字典都有一个额外的关键字“actor”。顺序是一样的。我想把d2的字典按数字顺序分配给rdd字典。这是d2的第一个字典更新rdd中第一个字典的值

我想把它当作

[{'actor':'brad', “好”:1.4, “坏”:0.4, “平均值”:0.6,} {'actor':'汤姆', “好”:0.4, “坏”:1.7, “平均值”:1.2,}]

我试过了:

for dic in d2:
   for key in rdd.filter(lambda x: x).first().keys():
       rdd.filter(lambda x: x).first()[key]=dic[key]

这不管用。如何更新值。在


Tags: keyfor字典顺序平均值d2actorbad
1条回答
网友
1楼 · 发布于 2024-05-15 20:27:55

这对你有好处吗?在

rdd = sc.parallelize([{'actor': 'brad',
  'good': 1,
  'bad': 0,
  'average': 0},
 {'actor': 'tom',
  'good': 0,
  'bad': 1,
  'average': 1}])
d2 = [{'good': 1.4,
  'bad': 0.4,
  'average': 0.6},
 {'good': 0.4,
  'bad': 1.7,
  'average': 1.2}]

def update_and_return_dict(_dict, update_dict):
    _dict.update(update_dict)
    return _dict
print rdd.zipWithIndex().map(lambda x: update_and_return_dict(x[0], d2[x[1]])).collect()

[{'bad':0.4,'good':1.4,'average':0.6,'actor':'brad'},{'bad':1.7,'good':0.4,'average':1.2,'actor':'tom'}]

相关问题 更多 >