【发布时间】:2018-04-08 09:24:06
【问题描述】:
当我在 vanilla spark 集群上运行,并且想要针对特定的 virtualenv 运行 pyspark 脚本时,我可以创建虚拟环境,根据需要安装包,然后将环境压缩到一个文件中,比如说 @ 987654321@。
然后,在运行时,我可以执行
spark-submit --archives venv.zip#VENV --master yarn script.py
然后,只要我运行
os.environ["PYSPARK_PYTHON"] = "VENV/bin/python" 在 script.py 中,代码将针对虚拟环境运行,spark 将处理为我的所有集群配置虚拟环境。
当我在 dataproc 上执行此操作时,首先,hadoop 样式的哈希别名不起作用,其次,正在运行
gcloud dataproc jobs submit pyspark script.py --archives venv.zip --cluster <CLUSTER_NAME>
os.environ["PYSPARK_PYTHON"] = "venv.zip/bin/python" 会产生:
Error from python worker:
venv/bin/python: 1: venv.zip/bin/python: Syntax error: word unexpected (expecting ")")
它清楚地看到了我的 python 可执行文件,并试图对其运行,但似乎确实存在某种解析错误。是什么赋予了?有什么方法可以将实时 python 可执行文件传递给 dataproc,就像你可以针对 vanilla spark 集群一样?
【问题讨论】:
标签: pyspark virtualenv google-cloud-dataproc