在本快速入門中,您將瞭解如何使用 Web 工具在 Azure Synapse 中建立無伺服器 Apache Spark 集區。 然後,您將瞭解如何連線到 Apache Spark 集區,並針對檔案和資料表執行 Spark SQL 查詢。 Apache Spark 使用記憶體內處理實現快速資料分析和叢集運算。 如需 Azure Synapse 中 Spark 的相關資訊,請參閱 概觀:Azure Synapse 上的 Apache Spark。
這很重要
無論使用與否,Spark 執行個體都是按分鐘計費。 當您使用完 Spark 執行個體之後,請務必將其關閉,或設定短暫的逾時時間。 如需詳細資訊,請參閱本文的 清除資源 一節。
如果您沒有 Azure 訂用帳戶,請 先建立免費帳戶,再開始。
先決條件
- 您需要 Azure 訂用帳戶。 如有需要, 請建立免費的 Azure 帳戶
- Synapse Analytics 工作區
- 無伺服器 Apache Spark 集區
登入 Azure 入口網站
登入 Azure 入口網站。
如果您沒有 Azure 訂用帳戶,請 先建立免費的 Azure 帳戶 ,再開始。
建立筆記本
筆記本是一種支援各種程式語言的互動環境。 筆記本可讓您與資料互動、將程式碼與 Markdown、文字結合,以及執行簡單的視覺化。
從您要使用的 Azure Synapse 工作區的 Azure 入口網站 檢視中,選取 [啟動 Synapse Studio]。
Synapse Studio 啟動之後,請選取 [開發]。 然後,選擇「+」圖示以新增資源。
從那裡,選擇 筆記本。 系統會建立新的筆記本,並使用自動產生的名稱開啟。
在 [屬性] 視窗中,提供筆記本的名稱。
在工具列上,按一下 [發佈]。
如果您的工作區中只有一個 Apache Spark 集區,則預設會選取它。 如果未選取任何集區,請使用下拉式清單來選取正確的 Apache Spark 集區。
按一下 「新增程式碼」。 預設語言是
Pyspark。 您將混合使用 Pyspark 和 Spark SQL,因此預設選項沒問題。 其他支援的語言包括 Scala 和 .NET for Spark。接下來,您會建立簡單的 Spark DataFrame 物件來操作。 在此情況下,您會從程式碼建立它。 有三列和三欄:
new_rows = [('CA',22, 45000),("WA",35,65000) ,("WA",50,85000)] demo_df = spark.createDataFrame(new_rows, ['state', 'age', 'salary']) demo_df.show()現在使用下列方法之一執行儲存格:
按 SHIFT + ENTER。
選取儲存格左側的藍色播放圖示。
選取工具列上的 [全部執行] 按鈕。
如果 Apache Spark 集區執行個體尚未運行,則會自動啟動。 您可以在正在執行的儲存格下方以及筆記本底部的狀態面板上看到 Apache Spark 集區實例狀態。 根據池的大小,啟動需要 2-5 分鐘。 當程式碼完成執行之後,資料格下方的資訊會顯示其執行所花的時間及執行狀態。 在輸出儲存格中,您會看到結果輸出。
資料現在存在於 DataFrame 中,您可以從那裡以許多不同的方式使用資料。 在本快速入門的其餘部分,您將需要不同的格式的資料。
在另一個儲存格中輸入以下程式碼並執行它,這會建立一個 Spark 表、一個 CSV 和一個 Parquet 檔案,所有這些檔案都包含資料的副本:
demo_df.createOrReplaceTempView('demo_df') demo_df.write.csv('demo_df', mode='overwrite') demo_df.write.parquet('abfss://<<TheNameOfAStorageAccountFileSystem>>@<<TheNameOfAStorageAccount>>.dfs.core.windows.net/demodata/demo_df', mode='overwrite')如果您使用儲存體總管,則可以看到上述兩種不同寫入檔案的方式的影響。 當未指定檔案系統時,會使用預設值,在此案例
default>user>trusted-service-user>demo_df中為 。 資料會儲存至指定檔案系統的位置。請注意,在「csv」和「parquet」格式中,寫入作業會建立包含許多分割檔案的目錄。
執行 Spark SQL 陳述式
結構化查詢語言(SQL)是用於查詢和定義資料的最常見和廣泛使用的語言。 Spark SQL 可作為 Apache Spark 的延伸模組,使用熟悉的 SQL 語法來處理結構化資料。
將下列程式碼貼到空白儲存格中,然後執行程式碼。 此命令會列出集區上的表格。
%%sql SHOW TABLES當您使用 Notebook 搭配 Azure Synapse Apache Spark 集區時,您會取得預設的
sqlContext,您可以使用此項目來透過 Spark SQL 執行查詢。%%sql告知筆記本使用sqlContext預設來執行查詢。 根據預設,查詢會從所有 Azure Synapse Apache Spark 集區隨附的系統資料表擷取前 10 個資料列。執行另一個查詢以查看
demo_df中的資料。%%sql SELECT * FROM demo_df程式碼會產生兩個輸出儲存格,一個包含資料結果,另一個顯示工作視圖。
依預設,結果視圖會顯示網格。 但是,網格下方有一個視圖切換器,允許視圖在網格和圖形視圖之間切換。
在 [檢視] 切換器中,選取 [圖表]。
從最右側選取 檢視選項 圖示。
在 圖表類型 欄位中,選取「長條圖」。
在 X 軸欄欄位中,選取「狀態」。
在 Y 軸欄欄位中,選取「薪資」。
在 [ 彙總 ] 欄位中,選取 [AVG]。
選取 ,然後套用。
可以獲得運行 SQL 的相同體驗,但無需切換語言。 您可以藉由將上述 SQL 儲存格取代為此 PySpark 儲存格來執行此動作,輸出體驗相同,因為使用了 display 命令:
display(spark.sql('SELECT * FROM demo_df'))先前執行的每個儲存格都有選擇進入 歷程記錄伺服器 和 監控的選項。 按一下連結會帶您前往使用者體驗的不同部分。
備註
某些 Apache Spark 官方檔 依賴使用 Spark 主控台,這在 Synapse Spark 上不可用。 請改用 筆記本 或 IntelliJ 體驗。
清理資源
Azure Synapse 會將您的資料儲存在 Azure Data Lake Storage 中。 您可以安全地讓 Spark 執行個體在不使用時關閉。 只要無伺服器 Apache Spark 集區正在執行,即使未使用,您仍需支付無伺服器 Apache Spark 集區的費用。
由於集區費用是儲存體費用的許多倍,所以關閉非使用中的 Spark 執行個體較符合經濟效益。
為確保 Spark 執行個體已關閉,請結束任何已連線的工作階段 (Notebook)。 當達到 Apache Spark 集區中指定的 閒置時間 時,集區會關閉。 您也可以從筆記本底部的狀態列選取 結束工作階段 。
後續步驟
在本快速入門中,您已瞭解如何建立無伺服器 Apache Spark 集區,並執行基本 Spark SQL 查詢。