#python #amazon-s3 #pyspark
#python #amazon-s3 #pyspark
Вопрос:
Я создаю приложение pyspark для запуска в кластере AWS EMR, которое зависит от s3fs. Я хочу установить пакеты s3fs через командную строку, создав python egg или zip-файл или любой другой наилучший подход.
Ниже я попытался создать файл python egg и передать его в качестве параметра в pyspark, но столкнулся с проблемой, указанной ниже.
pip install s3fs==0.2.2 -t s3fs # Installed s3fs packages locally into a directory
cd s3fs/
python setup.py bdist_egg # Ran the setup.py to create .egg file. The setup.py is below
aws s3 cp s3fs s3://myBucket/prefix/pkg/ --recursive # Copied all files to an s3 path
# setup.py File
from setuptools import setup, find_packages
setup(
name="s3fs",
version="0.2.2",
packages=find_packages(),
)
Теперь я передал файл egg в качестве параметра pyspark и попытался импортировать s3fs, но столкнулся с проблемой, как показано ниже.
pyspark --py-files s3://myBucket/prefix/pkg/dist/s3fs-0.2.2-py2.7.egg
>>> import s3fs
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.linux-x86_64/egg/s3fs/__init__.py", line 1, in <module>
#
File "build/bdist.linux-x86_64/egg/s3fs/core.py", line 2, in <module>
ImportError: cannot import name raise_from
Любые предложения или альтернативный подход для достижения этой цели.
Спасибо!!