AWS Glue创建ETL脚本以转换,展平和丰富数据。该代码是用Scala或Python生成的,是为Apache Spark编写的。
我的问题与这些脚本的可移植性有关。是否可以在其他(非AWS / EMR)Apache Spark集群上使用相同的脚本(由AWS Glue生成)用于Apache Spark,而无需进行修改,或者这些脚本与AWS Glue Apache Spark实施紧密结合?
答案 0 :(得分:2)
Scala和Python中生成的脚本都依赖于GlueContext和其他Glue lib对象。 AFAIK Glue运行环境在Glue之外不可用。
我认为一种明智的方法是将Glue用作对您执行Spark的硬件的抽象,并独立于Glue编写脚本(最终GlueContext和DynamicFrame不提供太多功能)。然后,您可以在任意位置运行代码。
答案 1 :(得分:1)
每个胶粘作业我们使用两个文件:job_glue.py和job_pyspark.py。 将特定于胶水的代码保留在job_glue.py中,将非胶水代码保留在job_pyspark.py中。 这不仅有助于在Glue和EMR中运行相同的代码,而且还可以进行单元测试pyspark代码,因为Glue模拟当前不可用。与使用开发端点和齐柏林飞艇笔记本电脑相比,测试驱动方法更快,更经济高效