我正在研究如何提交使用pycharm ide开发的pyspark作业。有4个python文件,1个python文件是pyspark job提交的主python文件,其余3个文件是在python主文件中导入的,但是我不知道我的python文件是否都在s3 bukcet中可用,spark job如何引用那些没有用pyspark submit命令提交的文件。e、 g:文件1、文件2、文件3、文件4
spark-submit --master local --driver-memory 2g --executor-memory 2g s3_path\file1.py
file2、file3、file4在file1中导入,但我想知道spark如何引用其他python文件。
2条答案
按热度按时间lb3vh1jj1#
创建包(egg文件)
使用setuptools将文件夹创建到可导入的包中。假设文件夹下有多个文件
mypackage
如下所示:使用
setuptools
您可以创建一个egg文件(这是一种压缩版本的包)把鸡蛋文件传给spark提交
spark-submit --pyfiles mypackage.egg <rest of the args>
####在spark应用程序中导入包的内容这里还有一件更重要的事情,如果你有权限/能力pip安装东西,那么就不要使用
egg
创建wheel
文件和运行pip install s3_path/<wheel-file>
,它将安装包并将您的可运行脚本复制到/usr/local/bin/
或同等的路径立即使您的生活更轻松。hwamh0ep2#
请使用以下配置
所以你的命令如下
一个重要的注意事项是文件路径之间不要有空格