编辑或上载任务脚本 - Amazon Glue Studio
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

编辑或上载任务脚本

使用 Amazon Glue Studio 可视化编辑器编辑任务脚本或上载您自己的脚本。

仅当任务使用 Amazon Glue Studio 创建时,您才能使用可视化编辑器编辑任务节点。如果任务是使用 Amazon Glue 控制台、通过 API 命令或命令行界面(CLI)创建,您可以使用 Amazon Glue Studio 中的脚本编辑器编辑任务脚本、参数和计划。您还可以将任务转换为仅脚本模式,编辑 Amazon Glue Studio 中所创建任务的脚本。

编辑任务脚本或上载您自己的脚本

  1. 如果创建新任务,请在 Jobs (任务) 页面上,选择 Spark script editor (Spark 脚本编辑器) 选项创建 Spark 任务,或选择 Python Shell script editor (Python Shell 脚本编辑器) 创建 Python Shell 任务。您可以编写新脚本,也可以上载现有脚本。如果选择 Spark script editor (Spark 脚本编辑器),您可以编写或上载 Scala 脚本或 Python 脚本。如果选择 Python Shell script editor (Python Shell 脚本编辑器),则只能编写或上载 Python 脚本。

    选择用于创建新任务的选项后,在显示的 Options (选项) 部分,您可以使用启动程序脚本(使用 boilerplate 代码创建新脚本)启动,也可以上载本地文件以用作任务脚本。

    如果选择 Spark script editor (Spark 脚本编辑器),您可以上载 Python 或 Scala 脚本文件。Scala 脚本必须具有文件扩展名 .scala。您必须将 Python 脚本识别为 Python 类型的文件。如果选择 Python Shell script editor (Python Shell 脚本编辑器),则只能上载 Python 脚本文件。

    完成选择后,选择 Create (创建) 创建任务并打开可视化编辑器。

  2. 转到新任务或已保存任务的可视任务编辑器,然后选择 Script (脚本) 选项卡。

  3. 如果未使用脚本编辑器选项创建新任务,并且从未编辑过现有任务的脚本,则 Script (脚本) 选项卡显示标题 Script (Locked) (脚本(已锁定))。这意味着脚本编辑器处于只读模式。选择 Edit script (编辑脚本) 解锁脚本以进行编辑。

    要使脚本可编辑,Amazon Glue Studio 将您的任务从可视化任务转换为仅脚本任务。如果解锁脚本进行编辑,则在保存此任务后,无法再使用可视化编辑器。

    在确认窗口中,选择 Confirm (确认) 以继续浏览,或选择 Cancel (取消) 以保持任务可用于可视化编辑。

    如果选择 Confirm (确认)Visual (可视化) 选项卡不再显示在编辑器中。您可以使用 Amazon Glue Studio 可使用脚本编辑器修改脚本、修改任务详细信息或调度,或查看任务运行。

    注意

    在保存任务之前,转换为仅脚本任务不是永久性操作。如果您刷新控制台网页,或者在保存之前关闭任务并在可视编辑器中重新打开它,则仍然可以在可视编辑器中编辑各个节点。

  4. 根据需要编辑脚本。

    编辑完脚本后,选择 Save (保存) 保存任务并将任务从可视化对象永久转换为仅脚本。

  5. (可选)您可以在 Script (脚本) 选项卡上选择 Download (下载) 按钮,从 Amazon Glue Studio 控制台下载脚本。选择此按钮后,将打开一个新的浏览器窗口,其中显示脚本在 Amazon S3 中的位置。任务的 Job details (任务详细信息) 选项卡中的 Script filenameScript path 参数确定脚本文件在 Amazon S3 中的名称和位置。

    
            屏幕截图显示 Amazon Glue Studio 中的可视化编辑器,其中已选择 Job details (任务详细信息) 选项卡。此页上的 Advanced properties (高级属性) 部分将展开,并显示 Script filename 和 Script path 参数。脚本文件名字段显示 Join test job.py,脚本路径字段显示 s3://aws-glue-assets-111122223333-u。

    保存任务时,Amazon Glue 将任务脚本保存在这些字段指定的位置。如果您在 Amazon S3 中修改此位置的脚本文件,Amazon Glue Studio 将在您下次编辑任务时加载修改后的脚本。

在 Amazon Glue Studio 中创建和编辑 Scala 脚本

当您选择用于创建任务的脚本编辑器时,默认情况下,任务编程语言设置为 Python 3。如果您选择编写新脚本而不是上载脚本,Amazon Glue Studio 会开启一个新的脚本,以 Python 编写样板文本。如果要改为编写 Scala 脚本,则必须首先将脚本编辑器配置为使用 Scala。

注意

如果选择 Scala 作为任务的编程语言,并使用可视化编辑器设计任务,则生成的任务脚本将使用 Scala 编写,因此无需进一步操作。

要在 Amazon Glue Studio 中编写新的 Scala 脚本

  1. 创建新任务,方法是选择 Spark script editor (Spark 脚本编辑器) 选项。

  2. Options (选项) 下面,选择 Create a new script with boilerplate code (使用样板代码创建新脚本)

  3. 选择 Job details (任务详细信息) 选项卡,将 Language (语言) 设置为 Scala(而不是 Python 3)。

    注意

    当您选择 Spark script editor (Spark 脚本编辑器) 选项创建任务,Type (类型) 属性将自动设置为 Spark

  4. 选择 Script (脚本) 选项卡。

  5. 删除 Python 样板文本。您可以用以下 Scala 样板文本替换。

    import com.amazonaws.services.glue.{DynamicRecord, GlueContext} import org.apache.spark.SparkContext import com.amazonaws.services.glue.util.JsonOptions import com.amazonaws.services.glue.util.GlueArgParser import com.amazonaws.services.glue.util.Job object MyScript { def main(args: Array[String]): Unit = { val sc: SparkContext = new SparkContext() val glueContext: GlueContext = new GlueContext(sc) } }
  6. 在编辑器中编写您的 Scala 任务脚本。您可以根据需要添加其他 import 语句。

在 Amazon Glue Studio 中创建和编辑 Python Shell 任务

选择 Python shell 脚本编辑器来创建任务时,可以上载现有 Python 脚本或编写新脚本。如果选择编写新脚本,样板代码将添加到新的 Python 任务脚本中。

创建新的 Python Shell 任务

请参阅启动作业创建过程中的说明。

Python Shell 任务支持的任务属性与 Spark 任务支持的任务属性不同。下面的列表描述了 Job details (任务详细信息) 选项卡上对 Python Shell 任务的可用任务参数所做的更改。

  • 任务的 Type (类型) 属性将自动设置为 Python Shell,而且无法更改。

  • 有面向任务的 Python version (Python 版本) 属性,而不是 Language (语言)。目前,Python Shell 任务在 Amazon Glue Studio 中使用 Python 3.6。

  • Glue version (Glue 版本) 属性不可用,因为它不适用于 Python Shell 任务。

  • 显示 Data processing units (数据处理单元) 属性,而不是 Worker type (工件类型)Number of workers (工件数)。此任务属性确定 Python Shell 在运行任务时使用的数据处理单元(DPU)数量。

  • Job bookmark (任务书签) 属性不可用,因为 Python Shell 任务不支持该属性。

  • Advanced properties (高级属性) 下面,以下属性不适用于 Python Shell 任务。

    • 作业指标

    • 连续日志记录

    • Spark UISpark UI 日志路径

    • 标题 Libraries (库) 下面的 Dependent jars path (从属 jars 路径)