使用 Scala 编写 Amazon Glue ETL 脚本 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Scala 编写 Amazon Glue ETL 脚本

您可以使用 Amazon Glue 控制台自动生成 Scala 提取、转换和加载 (ETL) 程序,并根据需要对其进行修改,然后将其分配给作业。或者,您可以从头编写自己的程序。有关更多信息,请参阅在 Amazon Glue 中添加作业。然后,Amazon Glue 会在服务器上编译您的 Scala 程序,再运行关联的作业。

为了确保您的程序编译时不会出现错误并可按预期运行,请务必在 REPL(读取-求值-输出-循环)或 Jupyter Notebook 的开发端点中加载程序并在此处进行测试,然后再在作业中运行。由于编译过程在服务器上进行,因此您无法清楚地看到服务器上出现的任何问题。

在 Jupyter Notebook 中的开发端点上测试 Scala ETL 程序

要在 Amazon Glue 开发终端节点上测试 Scala 程序,请设置开发终端节点(如 添加开发终端节点 中所述)。

接下来,将其连接到在您的计算机上本地运行或在 Amazon EC2 笔记本服务器上远程运行的 Jupyter Notebook。要安装 Jupyter Notebook 的本地版本,请按照 教程:JupyterLab 中的 Jupyter notebook 中的说明操作。

在您的笔记本上运行 Scala 代码与运行 PySpark 代码之间的唯一差别在于,在笔记本上每个段落的开头必须为:

%spark

这将防止 Notebook 服务器默认使用 Spark 解释器的 PySpark 风格。

在 Scala REPL 中测试 Scala ETL 程序

您可以使用 Amazon Glue Scala REPL 在开发终端节点上测试 Scala 程序。按照教程:使用 SageMaker 笔记本中的说明操作,除了 SSH-to-REPL 命令末尾,将 -t gluepyspark 替换为 -t glue-spark-shell。这将调用 Amazon Glue Scala REPL。

要在完成时关闭 REPL,请键入 sys.exit