RDD火花源分区按类型错误:Int';对象不可订阅 [英] RDD pyspark partitionBy - TypeError: 'int' object is not subscriptable
本文介绍了RDD火花源分区按类型错误:Int';对象不可订阅的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
list_1 = [[6, [3, 8, 7]], [5, [9, 7, 3]], [6, [7, 8, 5]], [5, [6, 7, 2]]]
rdd1 = sc.parallelize(list_1)
newpairRDD = rdd1.partitionBy(2,lambda k: int(k[0]))
print("Partitions structure: {}".format(newpairRDD.glom().collect()))
我想按键分区。
我收到了
TypeError:‘int’对象不可订阅
我做错了什么?
rdd
提供给partitionBy
的分区函数操作推荐答案的每个条目的键,即每个条目的第一个元素。因此,您在整数键上调用lambda k: int(k[0])
,从而导致您遇到的错误。
如果您只是想按键分区,您的lambda函数应该是一个标识操作,例如
newpairRDD = rdd1.partitionBy(2, lambda x: x)
这篇关于RDD火花源分区按类型错误:Int';对象不可订阅的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文