RDD列表索引超出范围时出现问题

2024-05-23 14:48:59 发布

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

我使用的是从一个RDD中获取的值。我使用第一个RDD计算平均值,并执行.collect()将其提取到名为z的变量中。

然而,当访问z时,我得到一个错误,list index out of range

我做错什么了?

avgtuples = summedtuples.map(lambda (ct, (Sx, Sy)): (((Sx*1.0)/ct), ((Sy*1.0)/ct)))
z = avgtuples.collect()
newmap = reducedhostbyte.map(lambda (h, (x, y)): (n, get_vals(x, y, z[0], z[1])))

z的值是[(24.910157132138149, 474512.76637794758)]


Tags: oflambdamapindex错误rangeoutlist
1条回答
网友
1楼 · 发布于 2024-05-23 14:48:59

如果z[(24.910157132138149, 474512.76637794758)],则它是具有单个元素的列表。所以z[1]导致IndexError

单元素(z[0])是一个双元素元组,因此您可能希望访问这两个元素作为z[0]z[1]。如果是,这就是你需要的:

z = avgtuples.collect()[0]

(注意末尾的[0]。它接受列表的第一个(也是唯一的)元素。)

很奇怪,一开始只有一行RDD(summedtuples)。您的代码中可能还有更多需要改进的地方,但这超出了问题的范围。

相关问题 更多 >