Mar*_*and 4 python amazon-web-services openpyxl aws-glue
这里的第一个堆栈溢出问题。希望我能正确地做到这一点:
我需要在 AWS 胶中使用外部 python 库。“Openpyxl”是库的名称。
我遵循以下说明:https : //docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-libraries.html
但是,在我将 zip 文件保存在正确的 s3 位置并将我的胶水作业指向该位置后,我不确定要在脚本中实际写入什么内容。
我尝试了您的典型Import openpyxl,但这只会返回以下错误:
ImportError: No module named openpyxl
Run Code Online (Sandbox Code Playgroud)
显然我不知道在这里做什么 - 对编程也相对较新,所以我不确定这是一个菜鸟问题还是什么。提前致谢!
小智 9
这取决于工作是 Spark 还是 Python Shell。对于 Spark,您只需要压缩库,然后当您将作业指向库 S3 路径时,作业将导入它。您只需要确保 zip 包含此文件:__init__.py
例如,对于您尝试导入的库,如果您从https://pypi.org/project/openpyxl/#files下载它,您可以将文件夹openpyxl压缩到openpyxl-3.0.0.tar.gz 中,并将其存储在 S3 中。
另一方面,如果它是 Python Shell 作业,则 zip 文件将不起作用。您需要从库中创建一个egg文件。如果您使用的是这个版本的 openpyxl-3.0.0,那么您可以从同一个网站下载它,提取所有内容,然后运行命令python setup.py bdist_egg或python3而不是python,如果您使用 python3 代替。
这将在文件夹中生成一个egg文件,dist该文件也会生成。您只需将该蛋文件放在 S3 中,并将 Glue Job Python 库指向该路径。
如果您已经拥有该库,但由于某种原因没有 . setup.py,那么您必须创建它才能运行命令来生成 egg 文件。请参考http://www.blog.pythonlibrary.org/2012/07/12/python-101-easy_install-or-how-to-create-eggs/。在那里你可以找到一个例子。
您现在可以(从 Glue 版本 2 开始)使用--additional-python-modules参数直接添加外部库。
例如,要更新或添加新的 scikit-learn 模块,请使用以下键/值:
"--additional-python-modules", "scikit-learn==0.21.3"。
更多详细信息可以在文档中找到。
| 归档时间: |
|
| 查看次数: |
7415 次 |
| 最近记录: |