RDD火花源分区按类型错误:Int'对象不可订阅 [英] RDD pyspark partitionBy - TypeError: 'int' object is not subscriptable

查看:18
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆