gpt4 book ai didi

python - 更新 RDD pyspark 中的字典值

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:13 24 4
gpt4 key购买 nike

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

rdd.take(2)

[{'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,}]

我想将 d2 的值分配给 Rdd。

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

我想得到它

[{' Actor ': '布拉德', “好”: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]

这是行不通的。如何更新值。

最佳答案

这对你有好处吗?

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()

[{'坏': 0.4, '好': 1.4, '平均': 0.6, ' Actor ': '布拉德'}, {'坏': 1.7, '好': 0.4, '平均': 1.2 , ' Actor ': '汤姆'}]

关于python - 更新 RDD pyspark 中的字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com