

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Scala 以程式設計 AWS Glue ETL 指令碼
<a name="glue-etl-scala-using"></a>

您可以使用 AWS Glue 主控台來自動產生 Scala 擷取、轉換和載入 (ETL) 程式並視需要修改，再將其指派到任務。或者，您也可以從頭開始撰寫自己的程式。如需更多資訊，請參閱 [在 中設定 Spark 任務的任務屬性 AWS Glue](add-job.md)。AWS Glue 會在執行相關的任務前在伺服器編譯 Scala 程式。

為了確保您的程式編譯無誤且如預期般執行，您必須在任務中執行該程式前，在 REPL (Read-Eval-Print Loop) 或 Jupyter 筆記本的開發端點上將其載入並測試。由於編譯處理會在伺服器上進行，您將無法詳細查看在其中發生的任何問題。

## 在開發端點上使用 Jupyter 筆記本測試 Scala ETL 程式
<a name="aws-glue-programming-scala-using-notebook"></a>

若要在 AWS Glue 開發端點上測試 Scala 程式，請如 [新增開發端點](add-dev-endpoint.md) 所述來設定開發端點。

接著，將其連線至在本機電腦或 Amazon EC2 筆記本伺服器遠端執行中的 Jupyter 筆記本。若要安裝本機版本的 Jupyter 筆記本，請遵循 [教學課程：JupyterLab 中的 Jupyter 筆記本](dev-endpoint-tutorial-local-jupyter.md) 中的說明進行。

在筆記本上執行 Scala 程式碼與執行 PySpark 程式碼之間的唯一差別，是您應使用以下項目以在筆記本上開始每一段落：

```
%spark
```

這可防止筆記本伺服器將 Spark 解譯器的 PySpark 類別設為預設。

## 在 Scala REPL 測試 Scala ETL 程式
<a name="aws-glue-programming-scala-using-repl"></a>

您可以使用 AWS Glue Scala REPL 在開發端點上測試 Scala 程式。請遵循[教學課程：使用 SageMaker AI 筆記本教學課程：使用 REPL shell](dev-endpoint-tutorial-repl.md)中的指示，但在 SSH-to-REPL 命令的結尾，將 `-t gluepyspark` 取代為 `-t glue-spark-shell`。這會呼叫 AWS Glue Scala REPL。

若要在完成時關閉 REPL，輸入 `sys.exit`。