Python:TypeError bad operand type for unary - ‘function’
TypeError bad operand type for unary - ‘function’
原题为:在Spark RDD中,依据K值获取前十个,调用top函数时K值写错,导致出错
出错前代码
# 1.形成(k,1)
rdd_kv = rdd_url.map(lambda url: (url, 1))
# print(rdd_kv.collect())
# 2.聚合.并通过top获取前十的数据
rdd_result = rdd_kv.reduceByKey(lambda x, y: x + y)
print(rdd_result.top(lambda url: url[1]))
解决方案:在第二print中把top中缺失的值补全即可
# 1.形成(k,1)
rdd_kv = rdd_url.map(lambda url: (url, 1))
# print(rdd_kv.collect())
# 2.聚合.并通过top获取前十的数据
rdd_result = rdd_kv.reduceByKey(lambda x, y: x + y)
print(rdd_result.top(10,lambda url: url[1]))