【发布时间】:2015-12-12 03:05:39
【问题描述】:
我有一个这样的列表:
b = [['r','w'],['n','finished']]
我希望能够对每个 list 中的每个 element 进行操作。
我可以在 python 本地执行此操作:
result = b.map(lambda aList: \
map(lambda aString: \
'' if aString.strip().lower() in [' finish', 'finished', 'terminate', 'done'] else aString,\
aList))
但是,Spark 在序列化内部 map 时遇到了问题:
File "/<path>/python/pyspark/worker.py", line 88, in main
12/11/2015 18:24:49 [launcher] command = pickleSer._read_with_length(infile)
12/11/2015 18:24:49 [launcher] File "//<path>/spark/python/pyspark/serializers.py", line 156, in _read_with_length
12/11/2015 18:24:49 [launcher] return self.loads(obj)
12/11/2015 18:24:49 [launcher] File "//<path>//python/pyspark/serializers.py", line 405, in loads
12/11/2015 18:24:49 [launcher] return cPickle.loads(obj)
12/11/2015 18:24:49 [launcher] AttributeError: 'module' object has no attribute 'map'
如何解决这个问题,使用内部地图或完成相同的事情?
【问题讨论】:
标签: python lambda apache-spark pyspark