在使用pyspark時,調用自定義的模塊(.zip、egg),可能會遇到以下問題:
File "/usr/install/anaconda2/lib/python2.7/site-packages/pyspark/serializers.py", line 454, in loads
return pickle.loads(obj)
ImportError: No module named *
這是由於在pyspark中調用第三方包時,在executor節點上執行,executor節點上未加載自定義的模塊所致。
利用sparkSession.sparkContext.addPyFile即可解決,該方法可以將自定義的模塊分發到各個executor節點上