概要
SynapseMLを使いたいけど、どうやって環境を作ればよいかわからなかったので、Dockerを使って環境構築する方法を試してみました!
作業前の環境
-
- Windows 10 Home
- Docker Desktopがインストール済み
SynapseML環境構築開始!
手順
手順はたったの5つ。
-
- Dockerイメージの取得
-
- Dockerコンテナの起動
-
- Jupyterノートブックの起動
-
- ブラウザでJupyterノートブックにアクセス
- ライブラリのインポート
1. Dockerイメージの取得
まずは、Dockerイメージの取得から始める。
MicrosoftのSynapseMLのサイトにDockerイメージに関する情報がある。
Using the SynapseML Docker Image
WSL UbuntuやPowershellを開いて、Dockerイメージをプルする。
docker pull mcr.microsoft.com/mmlspark/release:0.9.4
以下のコマンドで、Dockerイメージがローカルにプルできていることを確認する。
docker images
2. Dockerコンテナの起動
Dockerイメージが存在していることを確認できたので、イメージを元にコンテナを起動する。
docker run -it --rm -p 127.0.0.1:80:8888 -v ~/myfiles:/notebooks/myfiles mcr.microsoft.com/mmlspark/release:0.9.4
docker runコマンドのオプション説明はこちらのサイトを参照。
Using the SynapseML Docker Image
以下のようなTTYが表示されればOK。
root@c19xxxxxxx:/notebooks#
作成したJupyterノートブックファイルは以下のローカルフォルダに格納される。
~/myfiles
機械学習で利用する入力データ(トレーニング用データ、テスト用データ)をコンテナ起動前に保存しておくと読み込みできる。以下は~/myfiles配下にtitanic/train.csvを保存した場合のデータ読込み例。
import pyspark
spark = pyspark.sql.SparkSession.builder.appName("MyApp") \
.config("spark.jars.packages", "com.microsoft.azure:synapseml_2.12:0.9.4") \
.config("spark.jars.repositories", "https://mmlspark.azureedge.net/maven") \
.getOrCreate()
train_data = spark.read.format("csv").load(
"/notebooks/myfiles/titanic/train.csv"
)
3. Jupyterノートブックの起動
Jupyter notebookを起動する。
/notebooks# jupyter notebook
4. ブラウザでJupyterノートブックにアクセス
Jupyterノートブックを起動した状態で、Chromeなどのブラウザからhttp://localhostにアクセスすると、Jupyterノートブックが利用できる。
5. ライブラリのインポート
Jupyterノートブック上でPySparkとSynapseMLのライブラリをインポートする。
SynapseML Installation
import pyspark
spark = pyspark.sql.SparkSession.builder.appName("MyApp") \
.config("spark.jars.packages", "com.microsoft.azure:synapseml_2.12:0.9.4") \
.config("spark.jars.repositories", "https://mmlspark.azureedge.net/maven") \
.getOrCreate()
import synapse.ml
あとは好きにSynapseMLを使ってコードを書きましょう。
お疲れ様でした✨