共用方式為


教學課程:在 Synapse Studio 中建立 Apache Spark 作業定義

本教學課程示範如何使用 Synapse Studio 建立 Apache Spark 作業定義,然後將它們提交至無伺服器 Apache Spark 集區。

本教學課程涵蓋下列工作:

  • 建立 PySpark 的 Apache Spark 作業定義 (Python)
  • 建立 Spark 的 Apache Spark 作業定義 (Scala)
  • 建立 .NET Spark 的 Apache Spark 作業定義 (C#/F#)
  • 匯入 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 的 Apache Spark 作業定義 (Python)

在本節中,您會為 PySpark (Python) 建立 Apache Spark 作業定義。

  1. 開啟 Synapse Studio

  2. 您可以移至 建立 Apache Spark 作業定義的 範例檔案,下載 python.zip的範例檔案,然後解壓縮壓縮套件,並 解壓縮 wordcount.pyshakespeare.txt 檔案。

    範例檔案

  3. 選取 [數據 - 連結 ->> Azure Data Lake Storage Gen2],然後將 wordcount.pyshakespeare.txt上傳至您的 ADLS Gen2 文件系統。

    上傳 Python 檔案

  4. 選取 [開發 中樞],選取 [+] 圖示,然後選取 [Spark 作業定義 ] 以建立新的 Spark 作業定義。

    建立 Python 的新定義

  5. 從 Apache Spark 作業定義主視窗中的 [語言] 下拉式列表中選取 PySpark (Python)。

    選取 python

  6. 填寫 Apache Spark 作業定義的資訊。

    屬性 說明
    工作定義名稱 輸入 Apache 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 將會在適用時使用預設值。

    設定 Python 的 Spark 作業定義值

  7. 選取 [發佈 ] 以儲存 Apache Spark 作業定義。

    發佈 py 定義

建立 Apache Spark 的 Apache Spark 作業定義(Scala)

在本節中,您會為 Apache Spark(Scala) 建立 Apache Spark 作業定義。

  1. 開啟 Azure Synapse Studio

  2. 您可以移至 建立 Apache Spark 作業定義的 範例檔案,下載 scala.zip的範例檔案,然後解壓縮壓縮套件,並解壓縮 wordcount.jarshakespeare.txt 檔案。

    範例檔案 scala

  3. 選取 [數據 - 連結 ->> Azure Data Lake Storage Gen2],然後將wordcount.jarshakespeare.txt上傳至您的 ADLS Gen2 文件系統。

    準備 scala 結構

  4. 選取 [開發 中樞],選取 [+] 圖示,然後選取 [Spark 作業定義 ] 以建立新的 Spark 作業定義。 (範例影像與步驟 4 相同建立適用於 PySpark 的 Apache Spark 作業定義 (Python)。

  5. 從 Apache Spark 作業定義主視窗中的 [語言] 下拉式清單中選取 Spark(Scala)。

    選取 scala

  6. 填寫 Apache Spark 作業定義的資訊。 您可以複製範例資訊。

    屬性 說明
    工作定義名稱 輸入 Apache 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 將會在適用時使用預設值。

    設定 Scala 的 Spark 作業定義值

  7. 選取 [發佈 ] 以儲存 Apache Spark 作業定義。

    發佈 scala 定義

建立 .NET Spark 的 Apache Spark 作業定義(C#/F#)

在本節中,您會為 .NET Spark(C#/F#) 建立 Apache Spark 作業定義。

  1. 開啟 Azure Synapse Studio

  2. 您可以移至 建立 Apache Spark 作業定義的 範例檔案,下載 dotnet.zip的範例檔案,然後解壓縮壓縮套件,並 解壓縮wordcount.zipshakespeare.txt 檔案。

    範例 dotnet

  3. 選取 [數據 - 連結 ->> Azure Data Lake Storage Gen2],然後將wordcount.zipshakespeare.txt上傳至您的 ADLS Gen2 文件系統。

    準備 dotnet 結構

  4. 選取 [開發 中樞],選取 [+] 圖示,然後選取 [Spark 作業定義 ] 以建立新的 Spark 作業定義。 (範例影像與步驟 4 相同建立適用於 PySpark 的 Apache Spark 作業定義 (Python)。

  5. 從 Apache Spark 作業定義主視窗中的 [語言] 下拉式清單中選取 .NET Spark(C#/F# )。

    選取 dotnet

  6. 填寫 Apache Spark 作業定義的資訊。 您可以複製範例資訊。

    屬性 說明
    工作定義名稱 輸入 Apache Spark 作業定義的名稱。 此名稱可以隨時更新,直到發佈為止。
    範例:dotnet
    主要定義檔 用於作業的主要檔案。 從記憶體選取包含適用於 Apache Spark 應用程式的 .NET 的 ZIP 檔案(也就是主要可執行檔、包含使用者定義函式的 DLL 和其他必要檔案)。 您可以選取 [上傳檔案],以將檔案上傳至儲存體帳戶。
    範例: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 將會在適用時使用預設值。

    設定 dotnet 的 Spark 作業定義值

  7. 選取 [發佈 ] 以儲存 Apache Spark 作業定義。

    發佈 dotnet 定義

注意

針對 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"
  }
}

其他 livy 屬性

導出現有的 Apache Spark 作業定義檔

您可以從 檔案總管 的 [動作] 功能表,將現有的 Apache Spark 作業定義檔案匯出至本機。 您可以進一步更新 JSON 檔案以取得其他 Livy 屬性,並視需要將其匯回以建立新的作業定義。

建立匯出定義

建立匯出定義 2

將 Apache Spark 作業定義提交為批次作業

建立 Apache Spark 作業定義之後,您可以將它提交至 Apache Spark 集區。 請確定您是 您想要使用之 ADLS Gen2 檔案系統的記憶體 Blob 資料參與者 。 如果您不是,則必須手動新增許可權。

案例 1:提交 Apache Spark 作業定義

  1. 選取 Apache spark 作業定義視窗,以開啟它。

    開啟要提交的 Spark 作業定義

  2. 選取 [提交 ] 按鈕,將您的專案提交至選取的 Apache Spark 集區。 您可以選取 [Spark 監視 URL] 索引標籤,以查看 Apache Spark 應用程式的 LogQuery。

    選取 [提交] 按鈕以提交 Spark 作業定義

    [Spark 提交] 對話框

案例 2:檢視 Apache Spark 作業執行進度

  1. 選取 [ 監視],然後選取 [Apache Spark 應用程式 ] 選項。 您可以找到提交的 Apache Spark 應用程式。

    檢視 Spark 應用程式

  2. 然後選取 Apache Spark 應用程式, SparkJobDefinition 作業視窗隨即顯示。 您可以從這裏檢視作業執行進度。

    檢視 Spark 應用程式 LogQuery

案例 3:檢查輸出檔案

  1. 選取 [數據 - 連結 ->> Azure Data Lake Storage Gen2](hozhaobdbj),開啟稍早建立的結果資料夾,您可以移至結果資料夾,並檢查是否產生輸出。

    檢視輸出檔案

將 Apache Spark 作業定義新增至管線

在本節中,您會將 Apache Spark 作業定義新增至管線。

  1. 開啟現有的 Apache Spark 作業定義。

  2. 選取 Apache Spark 作業定義右上方的圖示,選擇 [現有管線] 或 [新增管線]。 如需詳細資訊,請參閱管線頁面。

    新增至 pipeline1

    新增至 pipeline2

下一步

接下來,您可以使用 Azure Synapse Studio 來建立 Power BI 數據集及管理 Power BI 數據。 前往將 Power BI工作區連結至 Synapse 工作區 一文,以深入瞭解。