ストレージ アカウント内のデータを分析する
このチュートリアルでは、ストレージ アカウントにあるデータを分析する方法について説明します。
概要
ここまでは、データがワークスペース内のデータベースに存在するシナリオについて説明してきました。 次に、ストレージ アカウント内のファイルを操作する方法について説明します。 このシナリオでは、ワークスペースの作成時に指定したワークスペースとコンテナーのプライマリ ストレージ アカウントを使用します。
- ストレージ アカウントの名前: contosolake
- ストレージ アカウント内のコンテナーの名前: users
ストレージ アカウントに CSV および Parquet ファイルを作成する
ノートブックの新しいコード セルで次のコードを実行します。 ストレージ アカウントに CSV ファイルと parquet ファイルが作成されます。
ヒント
このテーブルはクイックスタートで前に作成したものであり、手順はこちらで確認できます。
%%pyspark
df = spark.sql("SELECT * FROM nyctaxi.passengercountstats")
df = df.repartition(1) # This ensures we'll get a single file during write()
df.write.mode("overwrite").csv("/NYCTaxi/PassengerCountStats_csvformat")
df.write.mode("overwrite").parquet("/NYCTaxi/PassengerCountStats_parquetformat")
ストレージ アカウント内のデータを分析する
対象のワークスペースの既定の Azure Data Lake Storage (ADLS) Gen2 アカウントのデータを分析できます。また、"[管理]" > "[リンクされたサービス]" > "[新規]" を使用して、ADLS Gen2 または BLOB ストレージ アカウントを対象のワークスペースにリンクすることもできます (次の手順ではプライマリ ADLS Gen2 アカウントを参照します)。
Synapse Studio の [データ] ハブに移動し、 [Linked](リンク済み) を選択します。
[Azure Data Lake Storage Gen2]>[myworkspace (Primary - contosolake)](myworkspace (プライマリ - contosolake)) に移動します。
[users (プライマリ)] を選択します。 NYCTaxi フォルダーが表示されます。 その中に、PassengerCountStats_csvformat および PassengerCountStats_parquetformat という 2 つのフォルダーが表示されます。
PassengerCountStats_parquetformat フォルダーを開きます。 内部に、
part-00000-2638e00c-0790-496b-a523-578da9a15019-c000.snappy.parquet
のような名前の parquet ファイルがあります。parquet を右クリックして、 [新しいノートブック] を選択し、 [Load to DataFrame](データフレームに読み込む) を選択します。 次のようなセルを含む新しいノートブックが作成されます。
%%pyspark abspath = 'abfss://users@contosolake.dfs.core.windows.net/NYCTaxi/PassengerCountStats_parquetformat/part-00000-1f251a58-d8ac-4972-9215-8d528d490690-c000.snappy.parquet' df = spark.read.load(abspath, format='parquet') display(df.limit(10))
Spark1 という名前の Spark プールにアタッチします。 セルを実行します。 コアの不足に関連するエラーが発生した場合は、別のセッションでこの Spark プールを使用している可能性があります。 既存のすべてのセッションを取り消し、やり直しててください。
users フォルダーを選択します。 parquet ファイルをもう一度右クリックし、 [New SQL script](新しい SQL スクリプト)>[SELECT TOP 100 rows](上位 100 行の選択) の順に選択します。 次のような SQL スクリプトが作成されます。
SELECT TOP 100 * FROM OPENROWSET( BULK 'https://contosolake.dfs.core.windows.net/users/NYCTaxi/PassengerCountStats_parquetformat/part-00000-1f251a58-d8ac-4972-9215-8d528d490690-c000.snappy.parquet', FORMAT='PARQUET' ) AS [result]
スクリプト ウィンドウで、 [接続先] フィールドが組み込みのサーバーレス SQL プールに設定されていることを確認します。
スクリプトを実行します。