在使用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节点上