はじめに
Apache Spark for Azure Synapse で分析を行っていきたいと思います。
-
クイックスタート: Spark を使用して分析を開始する - Azure Synapse Analytics | Microsoft Learn
このチュートリアルでは、Apache Spark を使用してデータを分析する方法について説明します。
docs.microsoft.com
Synapseワークスペースは構築されていることが前提です。
-
Azure Synapse Analytics で分析を行う - ①ワークスペースの作成 - 技術的な何か。
はじめに Azure Synapse Analyticsはデータ分析基盤のひとつとして利用できます。そこで分析を何回かに分けてチュートリアルを行っていきます。 最初に行うのはワークスペースの作成を行っ
level69.net
分析
Apache Sparkを利用した分析は以下の作業手順で行います。
- サーバーレス Apache Spark プールの作成
- Spark プールでデータ分析
- データをSpark nyctaxi データベースに読み込む
- ノートブックを使用してデータを分析
サーバーレス Apache Spark プールの作成
Synapseワークスペースを作成した時に、ストレージにサンプルデータを保存しています。
それがNYCタクシーのデータです。今回は、そのサンプルデータを利用するのでない場合はSynapseワークスペースの作成を参考に配置してください。
管理からApache Sparkプールを開き新規で作成します。
プール名を任氏で作成します。サイズファミリはメモリを選択し、サイズは最小のSmallを選択します。これで作成します。
サイズファミリはメモリ最適化済み、Hardware Acceleratedから選択できます。
サイズはSmallからXXLargeまで選択できます。
Spark プールでデータ分析
Synapse studioで開発を開き、ノートブックを作成します。
下記のコースを入力します。ただし、adfss URIは作成したストレージアカウントに読み替えて入力します。アタッチ先は上記で作成したものを選択します。
%%pyspark df = spark.read.load('abfss://users@contosolake.dfs.core.windows.net/NYCTripSmall.parquet', format='parquet') display(df.limit(10))
実行結果
スキーマの表示
データをSpark nyctaxi データベースに読み込む
下記のコードを実行してデータベースを作成し読み込みます。
%%pyspark spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi") df.write.mode("overwrite").saveAsTable("nyctaxi.trip")
ノートブックを使用してデータを分析
下記のコードを実行します。
%%pyspark df = spark.sql("SELECT * FROM nyctaxi.trip") display(df)
下記のコードを実行しテーブルに保存します。
%%pyspark df = spark.sql(""" SELECT PassengerCount, SUM(TripDistanceMiles) as SumTripDistance, AVG(TripDistanceMiles) as AvgTripDistance FROM nyctaxi.trip WHERE TripDistanceMiles > 0 AND PassengerCount > 0 GROUP BY PassengerCount ORDER BY PassengerCount """) display(df) df.write.saveAsTable("nyctaxi.passengercountstats")
セルの結果でグラフを表示します。
まとめ
以上のような手法で分析を行っていきます。分析を行える言語が変わってきます。Python、Scala、C#、Spark SQLが利用できます。必要に応じて変えるとよいと思います。