mhn*_*mhn 5 python apache-spark pyspark
我正在另一个 RDD 中使用从一个 RDD 获得的值。我使用第一个 RDD 来计算平均值,并执行 a.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])))
Run Code Online (Sandbox Code Playgroud)
z的值为[(24.910157132138149, 474512.76637794758)]。
如果z是[(24.910157132138149, 474512.76637794758)],则它是一个包含单个元素的列表。因此z[1]会导致IndexError.
该单个元素 ( ) 是一个二元素元组,因此您可能希望将这两个元素作为和z[0]访问。如果是这样,这就是您所需要的:z[0]z[1]
z = avgtuples.collect()[0]
Run Code Online (Sandbox Code Playgroud)
(注意[0]最后的 。它采用列表的第一个(也是唯一一个)元素。)
summedtuples奇怪的是你首先会有一个单行 RDD ( ) 。您的代码中可能还有更多可以改进的地方,但这超出了问题的范围。
| 归档时间: |
|
| 查看次数: |
9252 次 |
| 最近记录: |