我试图使用Pyspark实现KMeans算法,它在while循环的最后一行给出了上述错误。它在循环外工作正常,但在我创建循环后它给了我这个错误 我该如何解决这个问题?
<button>Click me</button>
<div id="success"></div>
答案 0 :(得分:10)
您收到此错误是因为您尝试获取len
map
对象(生成器类型)且不支持abstract
。例如:
len
为了找到长度,您必须将>>> x = [[1, 'a'], [2, 'b'], [3, 'c']]
# `map` returns object of map type
>>> map(lambda a: a[0], x)
<map object at 0x101b75ba8>
# on doing `len`, raises error
>>> len(map(lambda a: a[0], x))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'map' has no len()
输入到list
(或tuple
),然后您可以调用map
。例如:
len
或者,使用列表理解(不使用>>> len(list(map(lambda a: a[0], x)))
3
)创建列表更好:
map