gpt4 book ai didi

python - 将 RDD 的每个元素与列表中的相应元素相乘

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:15 25 4
gpt4 key购买 nike

例如:

x = RandomRDDs.normalRDD(sc, size=3, seed=0)

x 是这样的:[-1.3, -2.4, -4.5]我想将 x 的每个元素与列表 [1, 2, 3] 中的一个不同 数相乘,然后将它们相加得到 y。这里 y 等于 -1.3*1 + -2.4*2 + -4.5*3

但我只能这样做:

y = x.map(lambda i: i*2).reduce(lambda a, b: a+b)

这里 y = -1.3*2 + -2.4*2 + -4.5*2

如何每次用不同的数字替换 x.map(lambda i: i*2) 中的 2?

最后的效果就像我们在python中经常做的那样:

x = [-1.3, -2.4, -4.5]
w = [1, 2, 3]
y = sum(x*w)

sum([x[i]*w[i] for i in range(len(x))])

非常感谢!

最佳答案

我会使用 zipWithIndexmap 来做到这一点:

x = RandomRDDs.normalRDD(sc, size=3, seed=0)
w = sc.broadcast([1, 2, 3])

x.zipWithIndex().map(lambda v: v[0] * w.value[v[1]]).sum()

或者,

import operator
x.zipWithIndex().map(lambda v: v[0] * w.value[v[1]]).reduce(operator.add)

关于python - 将 RDD 的每个元素与列表中的相应元素相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54049188/

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