我有一个UDF使用dill
的源代码。我的源代码中使用了其他软件包,所有软件包都列在requirements.txt中。因此,我正在执行以下操作,但对于“莳萝”说“找不到模块”
pip install -r requirements.txt --target ./dependencies
cd dependencies
zip dependencies.zip .
cd ..
spark-submit --master yarn --jars example.jar --conf spark.executor.instances=10 --pyfiles dependencies.zip --name example_job example.py arg1 arg2
这将出现以下错误
No module named "dill"
[我看到我们需要在--pyfiles
参数中显式传递鸡蛋文件,但是在哪里获取莳萝的鸡蛋文件?
我自己通过下载源代码并从中生成egg文件来做到这一点
pip download dill==0.3.1.1
tar -zxvf dill-0.3.1.1.tar.gz
cd dill-0.3.1.1
python setup.py bdist_egg
cp dist/*.egg ../
欢迎对上述过程进行任何改进