【问题标题】:import error : No module in AWS Glue job script- Python导入错误:AWS Glue 作业脚本中没有模块 - Python
【发布时间】:2018-07-06 04:17:12
【问题描述】:

我正在尝试提供我的自定义 python 代码,该代码需要 AWS(pandas) 不支持的库。因此,我创建了一个包含必要库的 zip 文件并将其上传到 S3 存储桶。在运行作业时,我在高级属性中指出了 S3 存储桶的路径。我的作业仍然没有成功运行。谁能建议为什么? 1.我必须在压缩文件中包含我的代码吗? 如果是,那么 Glue 将如何理解这是代码? 2. 我还需要创建一个包还是只需要 zip 文件就可以了? 感谢您的帮助!

【问题讨论】:

  • 它们怎么不被支持?为什么不能用 PIP 安装它们?
  • 我在 aws glue doc 中读到这个> '只能使用纯 Python 库。尚不支持依赖 C 扩展的库,例如 pandas Python 数据分析库。你能详细说明我如何用aws做点子吗?

标签: python amazon-web-services aws-glue


【解决方案1】:

2019 年 1 月 22 日发布的 AWS Glue 作业更新。

在 AWS Glue 中引入 Python Shell 作业 -- 发布于:2019 年 1 月 22 日

AWS Glue 中的 Python shell 作业支持与 Python 2.7 并预装了 Boto3 等库, NumPy、SciPy、熊猫等。您可以使用运行 Python shell 作业 1 DPU(数据处理单元)或 0.0625 DPU(即 1/16 DPU)。一种 单个 DPU 提供由 4 个 vCPU 组成的处理能力 计算和 16 GB 内存。

更多信息:https://aws.amazon.com/about-aws/whats-new/2019/01/introducing-python-shell-jobs-in-aws-glue/

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

【讨论】:

  • 您了解aws glue 提供的这两种工作之间的区别吗? (spark - python shell)
  • 是的,一个显着的区别是它在单个 DPU 实例上运行,您不能在多个 DPU 上运行它们。另一个区别是 python shell 似乎不接受其他 3rd 方 python 库的 zip 文件。我们需要创建一个 egg 文件,并上传到 AWS Glue (S3) 而不是 zip 文件。虽然没有太多时间检查 python shell 的性能。
  • 所以理论上,你可以在 python shell 上完成成熟的 etl 工作?与 Spark 作业相同的作业复杂性,但在较小的数据集上!
【解决方案2】:

根据 AWS Glue 文档:

只能使用纯 Python 库。依赖 C 的库 扩展,例如 pandas Python 数据分析库,不是 还支持。

如果您使用的库依赖于 C 扩展,我认为即使我们将 python 库作为 zip 文件上传也是行不通的。我曾以与您相同的方式尝试过使用 Pandas、Holidays 等,在联系 AWS Support 时,他们提到它在他们的待办事项列表中(支持这些 python 库),但目前还没有 ETA。

因此,此时任何非原生 python 的库都无法在 AWS Glue 中运行。但应该会在不久的将来推出,因为这是一个受欢迎的需求。

如果您仍然想尝试一下,请refer to this link,其中解释了如何打包外部库以在 AWS 胶水中运行,我尝试过但不适合我。

【讨论】:

    【解决方案3】:

    正如 Yuva 的回答所提到的,我认为目前无法导入不是纯粹在 Python 中的库,并且文档反映了这一点。

    但是,如果有人来这里寻找关于如何在 AWS Glue 中导入 python 库的答案,这篇文章中有一个很好的解释,说明如何使用 pg8000 库来做到这一点: AWS Glue - Truncate destination postgres table prior to insert

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      相关资源
      最近更新 更多