【问题标题】:AWS Glue ETL scripts generation and portabilityAWS Glue ETL 脚本生成和可移植性
【发布时间】:2019-02-22 16:03:54
【问题描述】:

AWS Glue 创建 ETL 脚本来转换、展平和丰富数据。代码使用 Scala 或 Python 生成,并为 Apache Spark 编写。

我的问题与这些脚本的可移植性有关。我可以在其他(非 AWS/EMR)Apache Spark 集群上使用相同的脚本(由 AWS Glue 生成)而不进行修改,或者这些脚本与 AWS Glue Apache Spark 实施紧密耦合吗?

【问题讨论】:

    标签: amazon-web-services apache-spark aws-glue


    【解决方案1】:

    在 Scala 和 Python 中生成的脚本都依赖于 GlueContext 和其他 Glue 库对象。 AFAIK Glue 运行环境在 Glue 之外不可用。

    我认为一个明智的方法是使用 Glue 作为您执行 Spark 的硬件的抽象,并编写独立于 Glue 的脚本(最终 GlueContext 和 DynamicFrame 不提供这么多的功能)。然后你可以在任何你喜欢的地方运行你的代码。

    【讨论】:

    • 感谢您的回答。能否请您指出描述如何以这种方式使用 Glue 的文档(对自己的 Spark 集群的硬件抽象)?
    • 我不知道它是否记录在任何地方,但 Glue 是建立在 EMR 之上的。当您运行作业时,会为您启动一个指定大小的 EMR 集群。如果你只想使用普通的 Spark,Glue 比 EMR 作为我从你身上抽象出来的整个硬件更方便。也许我没有使用正确的措辞,但这就是我的意思。
    【解决方案2】:

    每个粘合作业使用两个文件:job_glue.py 和 job_pyspark.py。 在 job_glue.py 中保留胶水特定代码,在 job_pyspark.py 中保留非胶水代码。 这不仅有助于在 Glue 和 EMR 中运行相同的代码,而且还允许对 pyspark 代码进行单元测试,因为 Glue 模拟当前不可用。与使用 dev 端点和 zeppelin notebook 相比,测试驱动方法更快且更具成本效益

    【讨论】:

    • 如何调用//配置它们 - 你调用/运行 job_glue.py 以及它如何调用 job_pyspark.py
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2014-11-01
    • 2020-05-20
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多