教學課程:在 Synapse Studio 中建立 Apache Spark 作業定義
本教學課程示範如何使用 Synapse Studio 來建立 Apache Spark 作業定義,然後將其提交至無伺服器 Apache Spark 集區。
本教學課程涵蓋下列工作:
- 建立適用於 PySpark (Python) 的 Apache Spark 作業定義
- 建立適用於 Spark (Scala) 的 Apache Spark 作業定義
- 建立適用於 .NET Spark (C#/F#) 的 Apache Spark 作業定義
- 匯入 JSON 檔案以建立作業定義
- 將 Apache Spark 作業定義檔案匯出至本機
- 以批次作業的形式提交 Apache Spark 作業定義
- 將 Apache Spark 作業定義新增至管線
必要條件
開始本教學課程之前,請確定您符合下列需求:
- Azure Synapse Analytics 工作區。 如需指示,請參閱建立 Azure Synapse Analytics 工作區。
- 無伺服器 Apache Spark 集區。
- ADLS Gen2 儲存體帳戶。 您必須是所要使用的 ADLS Gen2 檔案系統的儲存體 Blob 資料參與者。 如果您還不是,則必須手動新增權限。
- 如果您不想要使用工作區預設儲存體,請在 Synapse Studio 中連結必要的 ADLS Gen2 儲存體帳戶。
建立適用於 PySpark (Python) 的 Apache Spark 作業定義
在本節中,您會建立適用於 PySpark (Python) 的 Apache Spark 作業定義。
開啟 Synapse Studio。
您可以移至用來建立 Apache Spark 作業定義的範例檔案,下載 python.zip 的範例檔案,然後將壓縮套件解壓縮,擷取 wordcount.py 和 shakespeare.txt 檔案。
選取 [資料] -> [已連結] -> [Azure Data Lake Storage Gen2],然後將 wordcount.py 和 shakespeare.txt 上傳至您的 ADLS Gen2 檔案系統。
選取 [開發] 中樞,再選取 [+] 圖示,然後選取 [Spark 作業定義] 以建立新的 Spark 作業定義。
從 Apache Spark 作業定義主視窗的 [語言] 下拉式清單中,選取 [PySpark (Python)]。
填入 Apache Spark 作業定義的資訊。
屬性 描述 作業定義名稱 輸入 Spark 作業定義的名稱。 此名稱可隨時更新,直到作業定義發佈出去為止。
範例:job definition sample
主要定義檔 用於作業的主要檔案。 從您的儲存體選取 PY 檔案。 您可以選取 [上傳檔案],以將檔案上傳至儲存體帳戶。
範例:abfss://…/path/to/wordcount.py
命令列引數 作業的選擇性引數。
範例:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
注意:範例作業定義的兩個引數是以空格分隔。參考檔案 主要定義檔中用來作為參考的其他檔案。 您可以選取 [上傳檔案],以將檔案上傳至儲存體帳戶。 Spark 集區 作業將會提交至選取的 Apache Spark 集區。 Spark 版本 Apache Spark 集區正在執行的 Apache Spark 版本。 執行程式 要在指定 Apache Spark 集區中提供給作業使用的執行程式數目。 執行程式大小 在指定 Apache Spark 集區中提供給作業使用的執行程式所能使用的核心和記憶體數目。 驅動程式大小 在指定 Apache Spark 集區中提供給作業使用的驅動程式所能使用的核心和記憶體數目。 Apache Spark 設定 新增下方屬性來自訂設定。 如果您未新增屬性,Azure Synapse 將會在適用時使用預設值。 選取 [發佈] 以儲存 Apache Spark 作業定義。
建立適用於 Apache Spark (Scala) 的 Apache Spark 作業定義
在本節中,您會建立適用於 Apache Spark (Scala) 的 Apache Spark 作業定義。
您可以移至用來建立 Apache Spark 作業定義的範例檔案,下載 scala.zip 的範例檔案,然後將壓縮套件解壓縮,擷取 wordcount.jar 和 shakespeare.txt 檔案。
選取 [資料] -> [已連結] -> [Azure Data Lake Storage Gen2],然後將 wordcount.jar 和 shakespeare.txt 上傳至您的 ADLS Gen2 檔案系統。
選取 [開發] 中樞,再選取 [+] 圖示,然後選取 [Spark 作業定義] 以建立新的 Spark 作業定義。 (範例影像與針對 PySpark 建立 Apache Spark 作業定義 (Python) 步驟 4 的影像相同。)
從 Apache Spark 作業定義主視窗的 [語言] 下拉式清單中,選取 [Spark (Scala)]。
填入 Apache Spark 作業定義的資訊。 您可以複製範例資訊。
屬性 描述 作業定義名稱 輸入 Spark 作業定義的名稱。 此名稱可隨時更新,直到作業定義發佈出去為止。
範例:scala
主要定義檔 用於作業的主要檔案。 從您的儲存體選取 JAR 檔案。 您可以選取 [上傳檔案],以將檔案上傳至儲存體帳戶。
範例:abfss://…/path/to/wordcount.jar
Main class name (主要類別名稱) 主要定義檔中的完整識別碼或主要類別。
範例:WordCount
命令列引數 作業的選擇性引數。
範例:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
注意:範例作業定義的兩個引數是以空格分隔。參考檔案 主要定義檔中用來作為參考的其他檔案。 您可以選取 [上傳檔案],以將檔案上傳至儲存體帳戶。 Spark 集區 作業將會提交至選取的 Apache Spark 集區。 Spark 版本 Apache Spark 集區正在執行的 Apache Spark 版本。 執行程式 要在指定 Apache Spark 集區中提供給作業使用的執行程式數目。 執行程式大小 在指定 Apache Spark 集區中提供給作業使用的執行程式所能使用的核心和記憶體數目。 驅動程式大小 在指定 Apache Spark 集區中提供給作業使用的驅動程式所能使用的核心和記憶體數目。 Apache Spark 設定 新增下方屬性來自訂設定。 如果您未新增屬性,Azure Synapse 將會在適用時使用預設值。 選取 [發佈] 以儲存 Apache Spark 作業定義。
建立適用於 .NET Spark (C#/F#) 的 Apache Spark 作業定義
在本節中,您會建立適用於 .NET Spark (C#/F#) 的 Apache Spark 作業定義。
您可以移至用來建立 Apache Spark 作業定義的範例檔案,下載 dotnet.zip 的範例檔案,然後將壓縮套件解壓縮,擷取 wordcount.zip 和 shakespeare.txt 檔案。
選取 [資料] -> [已連結] -> [Azure Data Lake Storage Gen2],然後將 wordcount.zip 和 shakespeare.txt 上傳至您的 ADLS Gen2 檔案系統。
選取 [開發] 中樞,再選取 [+] 圖示,然後選取 [Spark 作業定義] 以建立新的 Spark 作業定義。 (範例影像與針對 PySpark 建立 Apache Spark 作業定義 (Python) 步驟 4 的影像相同。)
從 Apache Spark 作業定義主視窗的 [語言] 下拉式清單中,選取 [.NET Spark (C#/F#)]。
填入 Apache Spark 作業定義的資訊。 您可以複製範例資訊。
屬性 描述 作業定義名稱 輸入 Spark 作業定義的名稱。 此名稱可隨時更新,直到作業定義發佈出去為止。
範例:dotnet
主要定義檔 用於作業的主要檔案。 從儲存體中選取 .NET for Apache Spark 應用程式 (亦即,主要的可執行檔、包含使用者定義函式的 DLL,以及其他必要檔案) 所在的 ZIP 檔案。 您可以選取 [上傳檔案],以將檔案上傳至儲存體帳戶。
範例:abfss://…/path/to/wordcount.zip
主要可執行檔 主要定義 ZIP 檔案中的主要可執行檔。
範例:WordCount
命令列引數 作業的選擇性引數。
範例:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
注意:範例作業定義的兩個引數是以空格分隔。參考檔案 背景工作節點為了執行主要定義 ZIP 檔案中未包含的 .NET for Apache Spark 應用程式所需的其他檔案 (亦即,相依的 jar、其他的使用者定義函式 DLL,以及其他設定檔)。 您可以選取 [上傳檔案] ,以將檔案上傳至儲存體帳戶。 Spark 集區 作業將會提交至選取的 Apache Spark 集區。 Spark 版本 Apache Spark 集區正在執行的 Apache Spark 版本。 執行程式 要在指定 Apache Spark 集區中提供給作業使用的執行程式數目。 執行程式大小 在指定 Apache Spark 集區中提供給作業使用的執行程式所能使用的核心和記憶體數目。 驅動程式大小 在指定 Apache Spark 集區中提供給作業使用的驅動程式所能使用的核心和記憶體數目。 Apache Spark 設定 新增下方屬性來自訂設定。 如果您未新增屬性,Azure Synapse 將會在適用時使用預設值。 選取 [發佈] 以儲存 Apache Spark 作業定義。
注意
針對 Apache Spark 設定,如果 Apache Spark 設定的 Apache Spark 工作定義未執行任何特殊動作,則會在執行工作時使用預設設定。
匯入 JSON 檔案以建立 Apache Spark 作業定義
您可以從 Apache Spark 作業定義總管的 [動作] (...) 功能表中,將現有的本機 JSON 檔案匯入 Azure Synapse 工作區,以建立新的 Apache Spark 作業定義。
Spark 作業定義與 Livy API 完全相容。 您可以在本機 JSON 檔案中新增其他 Livy 屬性 (Livy Docs - REST API (apache.org) 的參數。 您也可以在 config 屬性中指定 Spark 組態相關參數,如下所示。 然後,您可以將 JSON 檔案匯入回來,為您的批次作業建立新的 Apache Spark 作業定義。 Spark 定義匯入的範例 JSON:
{
"targetBigDataPool": {
"referenceName": "socdemolarge",
"type": "BigDataPoolReference"
},
"requiredSparkVersion": "2.3",
"language": "scala",
"jobProperties": {
"name": "robinSparkDefinitiontest",
"file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
"className": "WordCount",
"args": [
"adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
],
"jars": [],
"files": [],
"conf": {
"spark.dynamicAllocation.enabled": "false",
"spark.dynamicAllocation.minExecutors": "2",
"spark.dynamicAllocation.maxExecutors": "2"
},
"numExecutors": 2,
"executorCores": 8,
"executorMemory": "24g",
"driverCores": 8,
"driverMemory": "24g"
}
}
匯出現有的 Apache Spark 作業定義檔案
您可以從檔案總管的 [動作] (...) 功能表,將現有的 Apache Spark 作業定義檔案匯出至本機。 您可以進一步更新 JSON 檔案以取得其他 Livy 屬性,並視需要將其匯入回來以建立新的作業定義。
以批次作業的形式提交 Apache Spark 作業定義
在建立 Apache Spark 作業定義後,您可以將其提交至 Apache Spark 集區。 請確定您是所要使用的 ADLS Gen2 檔案系統的儲存體 Blob 資料參與者。 如果您還不是,則必須手動新增權限。
案例 1:提交 Apache Spark 作業定義
選取 Apache Spark 作業定義以開啟其視窗。
選取 [提交] 圖示將您的專案提交至選取的 Apache Spark 集區。 您可以選取 [Spark 監視 URL] 索引標籤,以查看 Apache Spark 應用程式的 LogQuery。
案例 2:檢視 Apache Spark 作業的執行進度
選取 [監視器],然後選取 [Apache Spark 應用程式] 選項。 您可以找到已提交的 Apache Spark 應用程式。
然後,選取 Apache Spark 應用程式,[SparkJobDefinition] 作業視窗隨即顯示。 您可以從這裡檢視作業的執行進度。
案例 3:檢查輸出檔案
選取 [資料] -> [已連結] -> [Azure Data Lake Storage Gen2] (hozhaobdbj),開啟先前建立的 [結果] 資料夾,您可以移至 [結果] 資料夾,並檢查是否已產生輸出。
將 Apache Spark 作業定義新增至管線
在本節中,您會將 Apache Spark 作業定義新增至管線。
開啟現有的 Apache Spark 作業定義。
選取 Apache Spark 作業定義右上方的圖示,選擇 [現有的管線] 或 [新增管線]。 如需詳細資訊,您可以參考 [管線] 頁面。
後續步驟
接下來,您可以使用 Azure Synapse Studio 來建立 Power BI 資料集和管理 Power BI 資料。 繼續參閱將 Power BI 工作區連結至 Synapse 工作區一文,以深入了解。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應