RDD 问题 - 列表索引超出范围
Issue with RDD - list index out of range
我在另一个 RDD 中使用从一个 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)]
。
如果z
是[(24.910157132138149, 474512.76637794758)]
,它是一个只有一个元素的列表。所以 z[1]
导致 IndexError
.
该单个元素 (z[0]
) 是一个双元素元组,因此您可能希望以 z[0]
和 z[1]
的形式访问这两个元素。如果是这样,这就是您需要的:
z = avgtuples.collect()[0]
(注意末尾的 [0]
。它采用列表的第一个(也是唯一一个)元素。)
一开始你会有一个单行 RDD (summedtuples
),这很奇怪。您的代码中可能还有更多可以改进的地方,但这超出了问题的范围。
我在另一个 RDD 中使用从一个 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)]
。
如果z
是[(24.910157132138149, 474512.76637794758)]
,它是一个只有一个元素的列表。所以 z[1]
导致 IndexError
.
该单个元素 (z[0]
) 是一个双元素元组,因此您可能希望以 z[0]
和 z[1]
的形式访问这两个元素。如果是这样,这就是您需要的:
z = avgtuples.collect()[0]
(注意末尾的 [0]
。它采用列表的第一个(也是唯一一个)元素。)
一开始你会有一个单行 RDD (summedtuples
),这很奇怪。您的代码中可能还有更多可以改进的地方,但这超出了问题的范围。