快速入門:使用 Apache Spark 進行分析
在本教學課程中,您將瞭解使用適用於 Azure Synapse 的 Apache Spark 載入和分析資料的基本步驟。
必要條件
請確定您已 將範例數據放在主要記憶體帳戶中。
建立無伺服器 Apache Spark 集區
- 在 Synapse Studio 的左側窗格中,選取 [管理>Apache Spark 集區]。
- 選取 [新增]
- 針對 Apache Spark 集區名稱 ,輸入 Spark1。
- 針對 [ 節點大小 ] 輸入 [小型]。
- 針對 [節點 數目] 將最小值設定為 3,並將最大值設定為 3
- 選取 [檢閱 + 建立]>[建立]。 您的 Apache Spark 集區將在幾秒鐘內準備就緒。
瞭解無伺服器 Apache Spark 集區
無伺服器 Spark 集區是指出使用者如何使用 Spark 的方式。 當您開始使用集區時,會視需要建立 Spark 工作階段。 集區會控制該會話將使用多少 Spark 資源,以及會話在自動暫停之前會持續多久的時間。 您會支付該會話期間所使用的Spark資源,而不是針對集區本身付費。 如此一來,Spark 集區可讓您使用 Apache Spark,而不需要管理叢集。 這類似於無伺服器 SQL 集區的運作方式。
使用 Spark 集區分析 NYC 計程車數據
注意
請確定您已 將範例數據放在主要記憶體帳戶中。
在 Synapse Studio 中,移至 [開發] 中樞。
建立新的筆記本。
建立新的程式代碼資料格,並將下列程式代碼貼到該資料格中:
%%pyspark df = spark.read.load('abfss://users@contosolake.dfs.core.windows.net/NYCTripSmall.parquet', format='parquet') display(df.limit(10))
修改載入 URI,因此它會根據 abfss URI 配置參考記憶體帳戶中的範例檔案。
在筆記本 的 [附加至] 功能表中,選擇我們稍早建立的 Spark1 無伺服器Spark集區。
選取儲存格上的 [ 執行 ]。 Synapse 會視需要啟動新的 Spark 工作階段,以執行此儲存格。 如果需要新的Spark會話,一開始建立大約需要2到5分鐘的時間。 建立會話之後,單元格的執行大約需要 2 秒的時間。
如果您只想要檢視資料框架的架構,請使用下列程式代碼執行資料格:
%%pyspark df.printSchema()
將 NYC 計程車數據載入 Spark nyctaxi 資料庫
數據可透過名為 df 的數據框架取得。 將它載入名為 nyctaxi 的 Spark 資料庫。
將新的程式代碼儲存格新增至筆記本,然後輸入下列程式代碼:
%%pyspark spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi") df.write.mode("overwrite").saveAsTable("nyctaxi.trip")
使用 Spark 和筆記本分析 NYC 計程車數據
建立新的程式碼儲存格,並輸入下列程式代碼。
%%pyspark df = spark.sql("SELECT * FROM nyctaxi.trip") display(df)
執行數據格以顯示我們 載入至nyctaxi Spark 資料庫的NYC計程車數據。
建立新的程式碼儲存格,並輸入下列程式代碼。 我們將分析此數據,並將結果儲存到名為 nyctaxi.passengercountstats 的數據表中。
%%pyspark df = spark.sql(""" SELECT passenger_count, SUM(trip_distance) as SumTripDistance, AVG(trip_distance) as AvgTripDistance FROM nyctaxi.trip WHERE trip_distance > 0 AND passenger_count > 0 GROUP BY passenger_count ORDER BY passenger_count """) display(df) df.write.saveAsTable("nyctaxi.passengercountstats")
在數據格結果中,選取 [ 圖表 ] 以查看可視化的數據。