python - 如何在 Google Cloud Platform 中的 Google AI Platform 中安装 Spark 依赖项
问题描述
在 Google Colab 中,当前目录是/myContent
,并且该目录具有以下内容:
setup.py spark-2.4.5-bin-hadoop2.7.tgz 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)我已经提交setup.py
到谷歌AI平台,为什么找不到那个py文件?
2)如何预先在Google AI Platform中安装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"
谢谢
解决方案
- 我已经将 setup.py 提交到谷歌 AI 平台,为什么找不到那个 py 文件?
我复制了同样的错误,很可能问题是由文件 .tgz 引起的,因为支持的只是.tar.gz
and .whl
,请参阅手动构建和添加自定义依赖项。在setup.py
您引用压缩文件(spark-2.4.5-bin-hadoop2.7.tgz)时,但据我所知,该选项install_requires
应包含 PYPI 包或具有所需依赖项的目录。
- 如何预先在 Google AI Platform 中安装 spark 依赖文件?在 Google Colab Jupyter Notebook 中,我总是在单元格中运行以下代码:
在 Jupyter 单元中,您将在设置SPARK_HOME
变量时提取 .tgz 文件并安装 spark 二进制文件。这与使用文件的过程不同setup.py
。我注意到火花文档说“ PySpark 现在在 pypi 中可用。安装只需运行 pip install pyspark ”;因此,为了使用import pyspark
,您可以选择通过以下方式安装它:
使用文件pyspark-3.0.0.tar.gz而不是 spark-2.4.5-bin-hadoop2.7.tgz。
在 setup.py 文件中指定 pyspark,例如:
install_requires=['pyspark>=2.4.5']
,并按照指南正确配置setup.py
文件。
推荐阅读
- azure - 如何在 Azure 中创建匿名函数应用?
- c# - 查询主体必须以核心方法上的 select 子句或 group 子句结尾
- python - 使用 selenium 提取类中的第一个元素
- java - Dubbo服务启动报错:Error created bean with name 'userServiceImpl' 嵌套异常是org.I0Itec.zkclient.exception.ZkTimeoutException
- python - 将参数传递给夹具
- java - 如何在连接超时错误的情况下尝试捕获
- c# - 是否有 C#“out var”的 VB.net 等价物
- python - 在 Python 类中共享变量的正确方法
- java - Java如何拆分arralyist并设置在单独的字符串或数组中
- javascript - 本机延迟加载图像回流 (loading='"lazy")