【发布时间】:2018-06-24 18:49:08
【问题描述】:
执行以下脚本时出现错误“int object is unsubscriptable”:
element.reduceByKey( lambda x , y : x[1]+y[1])
with element 是一个key-value RDD,value是一个元组。示例输入:
(A, (toto , 10))
(A, (titi , 30))
(5, (tata, 10))
(A, (toto, 10))
我了解reduceByKey 函数采用 (K,V) 元组并对所有值应用函数以获得归约的最终结果。
就像ReduceByKey Apache中给出的例子一样。
有什么帮助吗?
【问题讨论】:
-
你想要什么输出?问题是
x[1]+y[1]是一个 int,而不是一个元组(这是reduceByKey在下一次迭代中所期望的。 -
预期的输出是
(A , 50) (5, 10),但为什么reduceByKey应该在下一次迭代中期待一个元组呢?它应该保持相同类型的值减少吗?
标签: python apache-spark pyspark