Import data from Azure Open Datasets in Python
オープンデータを使って検証をしたり、プロダクト開発をしたりする際に利用できるデータソースとして、 Azure Open Datasets という選択肢があります。Azure サービスから利用することができ、基本的に無料で利用可能です。技術的なドキュメントは こちら で公開されています。
本記事では、 Azure Open Datasets のうちの1つのデータセットを対象に、Python でデータをインポートする方法を解説します。
前提
- Microsoft Azure に利用可能なサブスクリプションを持っている
免責
- 筆者の環境は英語です。画面が日本語表示になっていない点、ご了承ください。
手順
本記事では NOAA Global Forecast System (全米海洋大気局 (NOAA) グローバル予測システム (GFS)) のデータセットを利用します。Python SDK のドキュメントは こちら です。
本データセットが利用できる Azure のサービスは、以下の通りです。
つまり Jupyter Notebook が利用可能なサービスから Azure Open Datasets を利用できるということで、いずれかの環境を用意した上で、以下の手順を実行します。
事前準備
Azure ML の SDK をインストールします。シェルから pip でインストールする方法は以下の通りになります。
1 | pip install azureml-opendatasets |
それ以外の方法として、例えば Azure Databricks ではクラスターのライブラリを GUI でインストールしますが、その際には PyPI から azureml-opendatasets をインストールするように設定します。
コードを書く
1 | from azureml.opendatasets import NoaaGfsWeather |
コンストラクタ NoaaGfsWeather()
が生成するインスタンス(変数 gfs
の中身)は Apache Parquet 形式です。これに対して to_spark_dataframe()
関数をコールすることで、 Spark の DataFrame 形式に変換しています(変数 gfs_df
の中身)。
NoaaGfsWeather のデータセット全体は非常に巨大です。上記のコードでは1日分のデータのみを取得していますが、それでも概算で約1GB程度のデータ量となることに注意してください。
DataFrame のスキーマは以下の通りになっています。
1 | currentDatetime:timestamp |
データを表示する
Notebook からの実行であれば、テーブルでデータを表示することができます。
1 | display(gfs_df.limit(5)) |
まとめ
Python を使って Azure Open Datasets からデータをインポートする方法について解説しました。SDK として利用できるため、ファイルや Web API 等の形式に比べて非常に扱いやすいと思います。
Azure Open Datasets では他にも様々なデータが提供されています。ぜひ活用をして、検証やAI開発などに役立てていきましょう。