相关疑难解决方法(0)

我似乎无法在Spark上使用--py文件来工作

我在Spark上使用Python时遇到了问题.我的应用程序有一些依赖项,例如numpy,pandas,astropy等.我不能使用virtualenv来创建一个包含所有依赖项的环境,因为除了HDFS之外,集群上的节点没有任何公共mountpoint或文件系统.因此我坚持使用spark-submit --py-files.我将site-packages的内容打包到一个ZIP文件中并像使用--py-files=dependencies.zip选项一样提交作业(最简单的方法是在Spark执行器节点上安装Python依赖项?).但是,群集上的节点似乎仍然没有看到内部的模块,并且ImportError在导入numpy时它们会抛出这样的内容.

File "/path/anonymized/module.py", line 6, in <module>
    import numpy
File "/tmp/pip-build-4fjFLQ/numpy/numpy/__init__.py", line 180, in <module>   
File "/tmp/pip-build-4fjFLQ/numpy/numpy/add_newdocs.py", line 13, in <module>
File "/tmp/pip-build-4fjFLQ/numpy/numpy/lib/__init__.py", line 8, in <module>
    #
File "/tmp/pip-build-4fjFLQ/numpy/numpy/lib/type_check.py", line 11, in <module>
File "/tmp/pip-build-4fjFLQ/numpy/numpy/core/__init__.py", line 14, in <module>
ImportError: cannot import name multiarray
Run Code Online (Sandbox Code Playgroud)

当我切换到virtualenv并使用本地pyspark shell时,一切正常,所以依赖都在那里.有谁知道,什么可能导致这个问题,以及如何解决它?

谢谢!

python apache-spark pyspark

24
推荐指数
3
解决办法
3万
查看次数

使用--archives选项上传zip文件上传zip文件

我有一个包含一些模型文件的目录,由于某些原因,我的应用程序必须访问本地文件系统中的这些模型文件.

当然我知道可以将文件上传到每个执行程序的工作目录的--files选项,spark-submit它确实有效.

但是,我想保留我的文件的目录结构,所以我想出了--archives选项,这就是说

YARN-only:
......
--archives ARCHIVES         Comma separated list of archives to be extracted into the working directory of each executor.
......
Run Code Online (Sandbox Code Playgroud)

但是当我实际使用它上传时models.zip,我发现纱线只是放在那里没有提取,就像它做的那样--files.我误解to be extracted或误用了这个选项吗?

zip scala hadoop-yarn apache-spark

7
推荐指数
1
解决办法
6098
查看次数

运送和在pyspark作业中使用virtualenv

问题:我正在尝试从本地计算机向计算机集群运行火花提交脚本。集群完成的工作使用numpy。我目前收到以下错误:

ImportError: 
Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

Original error was: cannot import name multiarray
Run Code Online (Sandbox Code Playgroud)

详细信息:在我的本地环境中,我设置了一个virtualenv,其中包括numpy以及我在项目和其他各种库中使用的私有存储库。我从venv / lib / site-packages的site-packages目录创建了一个zip文件(lib / libs.zip),其中“ venv”是我的虚拟环境。我将此zip邮寄到远程节点。我用于执行spark-submit的shell脚本如下所示:

$SPARK_HOME/bin/spark-submit \
  --deploy-mode cluster \
  --master yarn \
  --conf spark.pyspark.virtualenv.enabled=true  \
  --conf spark.pyspark.virtualenv.type=native \
  --conf spark.pyspark.virtualenv.requirements=${parent}/requirements.txt \
  --conf spark.pyspark.virtualenv.bin.path=${parent}/venv \
  --py-files "${parent}/lib/libs.zip" …
Run Code Online (Sandbox Code Playgroud)

numpy virtualenv pyspark

5
推荐指数
1
解决办法
4704
查看次数

标签 统计

apache-spark ×2

pyspark ×2

hadoop-yarn ×1

numpy ×1

python ×1

scala ×1

virtualenv ×1

zip ×1