在Google Colab中,当前目录是/myContent,该目录包含以下内容:
setup.py spark-2.4.5-bin-hadoop2.7.tgz trainer/在trainer文件夹中,它有__init__.py task.py。task.py有我的Python代码,带有import pyspark
下面是setup.py中安装spark依赖文件的代码片段:
from setuptools import find_packages
from setuptools import setup
REQUIRED_PACKAGES = ['spark-2.4.5-bin-hadoop2.7.tgz']
setup(
name='trainer',
version='0.1',
install_requires=REQUIRED_PACKAGES,
packages=find_packages(),
include_package_data=True,
description='My training application package.'
)当我向Google AI Cloud提交训练任务时,在/myContent目录下运行以下代码:
!gcloud ai-platform jobs submit training $JOB_NAME \
--package-path $ACKAGE_PATH \
--module-name $MODULE \
--staging-bucket $STAGING_PATH \
--scale-tier custom \
--master-machine-type complex_model_l_gpu \
--worker-machine-type complex_model_l_gpu \
--worker-count 2 \
--runtime-version 2.1 \
--python-version 3.7 \
--packages spark-2.4.5-bin-hadoop2.7.tgz \
--job-dir $JOB_DIR \
-- \
--param_A=1 \
--param_B=2 \作业失败,并显示日志中的错误消息:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.7/tokenize.py", line 447, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-req-build-b_xhvahl/setup.py'1)我已经向谷歌AI平台提交了setup.py,为什么找不到那个py文件?
2)如何在Google AI平台预先安装spark依赖文件?在Google Colab Jupyter Notebook中,我总是在计算单元中运行以下代码:
# install spark
%cd
!apt-get install openjdk-8-jdk-headless -qq
!wget https://archive.apache.org/dist/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz
!tar -xvf spark-2.4.5-bin-hadoop2.7.tgz > /dev/null
!pip install -q findspark
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/root/spark-2.4.5-bin-hadoop2.7"谢谢
发布于 2020-06-26 23:10:05
我复制了相同的错误,问题很可能是由文件.tgz引起的,因为只支持.tar.gz和.whl,请参阅manual build和adding custom dependencies。在setup.py中,您引用的是一个压缩文件(spark-2.4.5-bin-hadoop2.7.tgz),但据我所知,选项install_requires应该包含一个PYPI包或具有所需依赖项的目录。
在Jupyter单元中,当您设置SPARK_HOME变量时,您正在提取.tgz文件并安装spark二进制文件。这与使用文件setup.py的过程不同。我注意到spark文档说"PySpark现在可以在import pyspark中使用。要安装它,只需运行pip install pyspark";所以,要使用pyspark,你可以选择通过以下方式安装它:
使用文件pyspark-3.0.0.tar.gz而不是spark spark-2.4.5-bin-hadoop2.7.tgz.的
在setup.py文件中指定
install_requires=['pyspark>=2.4.5'],然后按照the guidelines正确配置setup.py文件。https://stackoverflow.com/questions/61864614
复制相似问题