在PySpark中未加载Elephas:没有命名的模块elephas.spark_模块

2024-09-28 19:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在集群上分发Keras培训,并使用Elephas。但是,从Elephas(https://github.com/maxpumperla/elephas)的doc运行基本示例时:

from elephas.utils.rdd_utils import to_simple_rdd
rdd = to_simple_rdd(sc, x_train, y_train)
from elephas.spark_model import SparkModel
from elephas import optimizers as elephas_optimizers
sgd = elephas_optimizers.SGD()
spark_model = SparkModel(sc, model, optimizer=sgd, frequency='epoch', mode='asynchronous', num_workers=2)
spark_model.train(rdd, nb_epoch=epochs, batch_size=batch_size, verbose=1, validation_split=0.1)

我得到以下错误:

^{pr2}$

另外,模型实际上是创建的,我可以做print(spark_model),并将得到这个<elephas.spark_model.SparkModel object at 0x7efce0abfcd0>。错误发生在spark_model.train期间。在

我已经用pip2 install git+https://github.com/maxpumperla/elephas安装了elephas,也许这是相关的。在

我使用PySpark 2.1.1、keras2.1.4和python2.7。 我试过用spark submit运行它:

PYSPARK_DRIVER_PYTHON=`which python` spark-submit --driver-memory 1G  filname.py

也可以直接放在Jupyter笔记本上。两者都会导致相同的问题。在

谁能给我点建议吗?这是与elephas有关还是PySpark问题?在

编辑:我还上传了虚拟环境的zip文件,并在脚本中调用它:

virtualenv spark_venv --relocatable
cd spark_venv 
zip -qr ../spark_venv.zip *

PYSPARK_DRIVER_PYTHON=`which python` spark-submit --driver-memory 1G --py-files spark_venv.zip filename.py

然后在文件中我会:

sc.addPyFile("spark_venv.zip")

在导入这个keras之后没有任何问题,但是我仍然从上面得到elephas错误。在


Tags: frompyimportmodelvenv错误trainzip
2条回答

我找到了一个解决方案,如何正确地将虚拟环境加载到主机和所有从工作机:

virtualenv venv  relocatable
cd venv 
zip -qr ../venv.zip *

PYSPARK_PYTHON=./SP/bin/python spark-submit  master yarn  deploy-mode cluster  conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./SP/bin/python  driver-memory 4G  archives venv.zip#SP filename.py

有关GitHub问题的更多详细信息: https://github.com/maxpumperla/elephas/issues/80#issuecomment-371073492

您应该将elephas库作为参数添加到spark-submit命令中。在

引用官方指南:

For Python, you can use the py-files argument of spark-submit to add .py, .zip or .egg files to be distributed with your application. If you depend on multiple Python files we recommend packaging them into a .zip or .egg.

Official guide

相关问题 更多 >