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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用 Scala 编写 AWS Glue ETL 脚本

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

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

在 Zeppelin Notebook 中的开发终端节点上测试 Scala ETL 程序

要在 AWS Glue 开发终端节点上测试 Scala 程序,请设置开发终端节点(如管理笔记本中所述)。

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

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

%spark

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

在 Scala REPL 中测试 Scala ETL 程序

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

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