我使用Spark 2.4.0 + K8s集群部署模式+ python 3.5。
我将所有库打包到zip存档中,并将其发送到AWS S3,然后附加到上下文
sc = pyspark.SparkContext(appName=args.job_name, environment=environment)
sc.addPyFile('s3a://.../libs.zip')
sc.addPyFile('s3a://.../code.zip')
导入工作,我可以导入任何包。但如果我导入包,从包相关的文件夹中读取一些文件-我得到错误:NotADirectoryError: [Errno 20] Not a directory: '/var/data/spark-ce45d34b-8d2f-4fd0-b3d6-d53ecede8ef1/spark-6ce9d14f-3d90-4c3c-ba2d-9dd6ddf32457/userFiles-08e6e9ec-03fa-447d-930f-bf1bd520f55a/libs.zip/airflow/config_templates/default_airflow.cfg'
我该怎么解决呢?
PS.使用sc.addFile('s3a:/..')
和解压不起作用,因为spark在集群模式下运行。
最新消息:
我已经暂时解决了这个问题,通过安装所有的软件包,我需要的码头集装箱,我正在使用的Spark工人。
1条答案
按热度按时间knsnq2tg1#
一些pip-installed软件包不能安全地压缩成zip文件。例如,使用的Airflow v1.10.15不是ZIP安全的(不确定是否有新版本)