【问题标题】:Using Pandas AWS Glue Python Shell Jobs使用 Pandas AWS Glue Python Shell 作业
【发布时间】:2020-11-18 19:17:30
【问题描述】:

AWS 文档 https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html

提到

运行 Python shell 作业的环境支持以下 图书馆:

...

pandas(需要通过 python setuptools 安装 配置,setup.py)

但它没有提到如何进行安装。

如何在 AWS Glue Python Shell 作业中使用 Pandas?

【问题讨论】:

    标签: python pandas aws-glue


    【解决方案1】:

    只是为了澄清 Sandeep 的答案,这对我有用

    1/ 忽略 AWS 文档

    2/ 创建一个 setup.py 文件,其中包含:

    from setuptools import setup
    
    setup(name="pandasmodule",
            version="0.1",
            packages=[],
            install_requires=['pandas==0.25.1']
        )
    

    3/ 在包含文件的文件夹中运行此命令:

    python setup.py bdist_wheel
    

    4/ 上传.whl文件到s3

    5/ 将 Glue ETL Job 中的“Python lib 路径”配置为 s3 路径

    您现在可以在 Glue ETL 作业中使用“import pandas as pd

    【讨论】:

    • setup.py 中可以包含多个包吗?如果是这样,有人可以发布一个例子吗?
    • 确保您只是在“install_requires”行中添加更多模块名称
    【解决方案2】:
    1. 转到https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html#create-python-extra-library。检查部分 创建 Python .egg 或 .whl 文件以了解“如何为 python shell 作业创建设置文件”
    2. 在 setup.py 文件中,添加行 install_requires=['pandas==0.25.1']:
    setup(name="<module name>",
            version="0.1",
            packages=['<package name if any or ignore>'],
            install_requires=['pandas==0.25.1']
        )
    

    我还编写了小 shell 脚本来部署 python shell 作业,无需手动步骤来创建 egg 文件并上传到 s3 并通过 cloudformation 部署。脚本会自动执行所有操作。 你可以在https://github.com/fatangare/aws-python-shell-deploy找到代码

    【讨论】:

    • 你能说清楚一点吗?获得 setup.py 后,使用“--extra-py-files”参数将其传递给作业定义?
    • 查看上面共享的链接。它包含所有步骤。您应该使用 setup.py 创建 .egg 文件并将其传递给“--extra-py-files”参数
    【解决方案3】:

    什么都不用做,导入pandas就可以开始使用了。

    【讨论】:

      【解决方案4】:

      AWS Glue 2.0 支持 pandas—1.0.1 https://docs.aws.amazon.com/glue/latest/dg/reduced-start-times-spark-etl-jobs.html

      所以在你的脚本中你可以简单地写:import pandas. 如果您想使用 Glue 中未提供的其他 python 模块,您可以下载 .whl 或 .zip -> 将其存储在 S3 中 -> 将其路径放在“Python 库路径”中的粘合作业中,并在作业运行期间粘合将执行 pip install "yourmodule"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-11
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        • 1970-01-01
        • 2021-12-23
        相关资源
        最近更新 更多