タイトルの通り、ADLSに配置したCSVファイルからDatabricks SQLのダッシュボードを作る流れを説明します。
ファイルのアップロード
ストレージアカウントとコンテナーを作成し、CSVファイルをアップロードします。こちらのファイルは日本国内のCOVID-19感染者数データを加工したものとなっています。
オープンデータ|厚生労働省で公開されている新規陽性者数の推移(日別)を加工しています。
Azure DatabricksからADLSにアクセス
注意
WASBドライバーを用いたアクセスやファイルシステムのマウントは非推奨となっています。ここではABFSドライバーによるアクセス方法を説明します。詳細はこちらも参照ください。
spark.conf.set("fs.azure.account.key.takaucstorageaccount.dfs.core.windows.net", "<アクセスキー>")
ディレクトリの中身を確認します。
display(dbutils.fs.ls("abfss://<コンテナー名>@<ストレージアカウント名>.dfs.core.windows.net/adls_data"))
テーブルの作成
ABFSドライバー経由でCSVファイルにアクセスできるので、CREATE TABLE
文を使ってCSVファイルから直接テーブルを作成します。
CREATE TABLE default.covid_cases(
Prefecture STRING,
Cases INT,
date_parsed TIMESTAMP
) USING CSV LOCATION "abfss://<コンテナー名>@<ストレージアカウント名>.dfs.core.windows.net/adls_data/japan_cases_20220818.csv" OPTIONS("header" = "True");
テーブルへのクエリー
SELECT * FROM default.covid_cases;
この時点でもノートブック上で簡単な可視化を行うことができます。
ダッシュボードの作成
Databricks SQLに移動します。上で作成したテーブルはDatabricks SQLからも参照できます。
以下のクエリーでは全国の感染者数のデータを除外し、今年のデータのみに限定しています。その他年月で集計できるようにYearMonth
という列を追加しています。
SELECT
*,
date(date_parsed) AS Date,
month(date_parsed) AS Month,
year(date_parsed) AS Year,
concat(year(date_parsed), "-", RIGHT(concat("0", month(date_parsed)), 2)) AS YearMonth
FROM
default.covid_cases
WHERE
Prefecture <> "ALL" AND date_parsed > "2022-1-1"
可視化(ビジュアライゼーション)は時系列変化、地域別、割合などを作成します。
また、ダッシュボード上で絞り込みが行えるように、Prefecture(県)や日付でのフィルターを追加しています。
クエリーの準備が整ったらダッシュボードを作成します。ダッシュボード上に上で作成したビジュアライゼーションを配置していきます。
このようなダッシュボードが出来上がりました。フィルターを追加してあるので都道府県や時期での絞り込みもできるようになっています。
ダッシュボードの詳細に関しては、前処理含めて別に記事を書こうと思っています。