Skip to main content
 首页 » 编程设计

python之“列表”对象在 pyspark 中没有属性 'map'

2024年08月19日37xiaohuochai

我是 pyspark 的新手。 我在 pyspark 中编写了这段代码:

def filterOut2(line): 
    return [x for x in line if x != 2] 
filtered_lists = data.map(filterOut2) 

但是我得到这个错误:

'list' object has no attribute 'map' 

我如何专门对 PySpark 中的数据执行 map 操作,以允许我将数据过滤为仅那些我的条件计算结果为真的值?

请您参考如下方法:

map(filterOut2, data) 有效:

>>> data = [[1,2,3,5],[1,2,5,2],[3,5,2,8],[6,3,1,2],[5,3,2,5],[4,1,2,5] ] 
... def filterOut2(line): 
...     return [x for x in line if x != 2] 
... list(map(filterOut2, data)) 
... 
[[1, 3, 5], [1, 5], [3, 5, 8], [6, 3, 1], [5, 3, 5], [4, 1, 5]] 

map() takes exactly 1 argument (2 given)

看起来您重新定义了 map。尝试 __builtin__.map(filterOut2, data)。

或者,使用列表理解:

>>> [filterOut2(line) for line in data] 
[[1, 3, 5], [1, 5], [3, 5, 8], [6, 3, 1], [5, 3, 5], [4, 1, 5]]