0
spark用にカスタマイズされたパーティショナー機能をPythonで作成するのを手伝ってください。カスタマイズされたパーティショナーがsparkでローカル変数を持たない
私はエントリのデータキーとパーティションIDの間のマッピングを伝えるファイルを持って、私が最初にスパーク
sc.parallelize(input_lines).partitionBy(numPartitions=xx, partitionFunc=lambda x : data_to_partition_map[x])
で、その後main.py
でdictの変数に「data_to_partition_mapを」それをロード私はローカルでこのコードを実行し、それがエラーを与える:
Traceback (most recent call last):
File "/home/weiyu/workspace/dice/process_platform_spark/process/roadCompile/main.py", line 111, in <module>
.partitionBy(numPartitions=tile_partitioner.num_partitions, partitionFunc=lambda x: tile_tasks_in_partitions[x])
File "/home/weiyu/app/odps-spark/python/lib/pyspark.zip/pyspark/rdd.py", line 1785, in partitionBy
File "/home/weiyu/app/odps-spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1392, in __call__
File "/home/weiyu/app/odps-spark/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py", line 289, in get_command_part
AttributeError: 'function' object has no attribute '_get_object_id'
スパークがラムダオブジェクトをシリアル化することができないようだ、誰かがこのエラーについてどんな考えを持っており、それを修正する方法を教えません?ありがとうございました