我正在使用spark-submit
(Spark 2.0)在AWS EMR上运行boo.py
脚本。
当我使用
时,文件成功完成python boo.py
然而,当我运行
时,它失败了。spark-submit --verbose --deploy-mode cluster --master yarn boo.py
yarn logs -applicationId ID_number
日志显示:
Traceback (most recent call last):
File "boo.py", line 17, in <module>
import boto3
ImportError: No module named boto3
我使用的python
和boto3
模块是
$ which python
/usr/bin/python
$ pip install boto3
Requirement already satisfied (use --upgrade to upgrade): boto3 in /usr/local/lib/python2.7/site-packages
我如何附加这个库路径,以便spark-submit
可以读取boto3
模块?
当您运行spark时,一部分代码运行在驱动程序上,一部分运行在执行程序上。
您是否只在驱动程序上安装boto3,还是在驱动程序+可能运行您的代码的所有执行器(节点)上安装boto3 ?
一个解决方案可能是-在所有执行器(节点)上安装boto3
如何在Amazon EMR节点上安装python模块:
如何在Amazon EMR上引导安装Python模块?