こんばんは。今回は、Azure Databricksについて知ったことをこの記事にまとめていきたいと思います。
前回は、全体感を掴むことを目的とした記事でしたが、今回は、実際にサービスを使ってみることにフォーカスしていきたいと思います。
それではまいります。
Contents
Azure Databricksでデータ分析・機械学習
まず、リソースの作成と、クラスターの準備です。まいります。
リソースの作成
Azure DatabricksはAzure Marketplaceから作成できます。「Databricks」と検索すると出てくるかと思います。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-91.png?resize=728%2C375&ssl=1)
リソースの作成では、ワークスペース名、リージョン、SKUを指定します。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-96.png?resize=728%2C508&ssl=1)
よりセキュアにデプロイするためのネットワークオプションも指定可能です。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-97.png?resize=615%2C305&ssl=1)
デプロイは、ほんの数分程度で完了しました!リソースのUIは以下。Azure Machine LearningやCognitive Serviceなどと同様、ここからワークスペースを起動して利用する形式のようですね。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-98.png?resize=728%2C323&ssl=1)
「ワークスペースの起動」に進むとAzureらしからぬ画面(DatabricksのUIと同じなのかな・・?)に遷移しました。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-104.png?resize=728%2C341&ssl=1)
まず困ったのが、ワークスペースが”Data Science & Engineering”と”Machine Learning”で切り替えられるようになっていること。(SQLはありませんでした、たぶん価格プランによっては使えないのかな・・?)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-106.png?resize=728%2C230&ssl=1)
あーよくみると、使える機能が微妙に違うようです。上がData Science。下がML。Notebookは共通ですが、Machine Learningの方ではAutoMLなどの機械学習系機能が使えて、Data Scienceの方ではData Import機能が使える模様。(私が思想を理解できていないだけかもしれないですが、なぜ切り替えないといけないのか謎ではあります・・)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-107.png?resize=728%2C169&ssl=1)
クラスターの作成
次にクラスターの作成です。実際の分析や、機械学習はこのクラスター上で行われますので、とにもかくにもクラスターを作成しておかないといけないのです。
このクラスターはMachine LearningでもData Scienceで共通のようなので、どちらで作成してもよさそうです。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-108.png?resize=728%2C605&ssl=1)
「Create Cluster」に進みます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-109.png?resize=728%2C255&ssl=1)
Clusterの設定では、Databricksランタイムバージョンやスケーリング、自動停止の設定などが行えます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-110.png?resize=728%2C432&ssl=1)
さらに、Advanced Optionsとして、SparkのCongigもいじれたりするようですね。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-111.png?resize=728%2C466&ssl=1)
いざ、作成!おお、ここはさすが売りにしているだけあって、本当に一瞬で完了しました。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-112.png?resize=728%2C377&ssl=1)
Notebookの作成
さて、それでは使ってみます。まずは、よくありそうな、Notebookを使ったアドホック分析・機械学習。
とりあえず、Machine LearningのNotebookを起動してみます。
Notebookの言語は、Python/R/Scalaに加えてSQLが選べます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-116.png?resize=728%2C319&ssl=1)
Noteが立ち上がりました!
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-117.png?resize=728%2C147&ssl=1)
データセットの作成
今回は、タイタニックのデータを使ってみます。なお、データはKaggleで公開されているものを利用します。
https://www.kaggle.com/c/titanic/data
さて、このデータをDatabricks上のNotebookから読み込める場所に配置せねばなりません。「Ingest data」に進みます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-118.png?resize=728%2C289&ssl=1)
するとCreate New Tableというタイトルで、いくつかの方法でデータの入力できる画面にうつりました。今回は、csvファイルをアップロードする形をとりました。
なお、csvをそのまま格納して、Notebook上でcsvを読み込む方法もありそうでしたので、リンクだけはっておきます。
https://docs.microsoft.com/ja-jp/azure/databricks/data/data
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-120.png?resize=728%2C390&ssl=1)
ここから「Create Table with UI」に進むと、クラスターの選択と、テーブルプレビューの確認ができるようになります。このままテーブルの作成を完了します。
*下のキャプチャのように、ヘッダが認識されていない場合には、「First row is header」チェックボックスにチェックをいれればOK。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-121.png?resize=728%2C342&ssl=1)
さて、次は作成したテーブルのデータをNotebook上に読みだしてくる必要があります。
こちらの公式ドキュメントを参考にします。
https://docs.microsoft.com/ja-jp/azure/databricks/data/tables#access-a-table
以下のように、spark.sql()構文を使うことでテーブルデータの取得ができました!
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-125.png?resize=728%2C326&ssl=1)
Notebook上の実装
あとは実装していくだけです。が、今回は割愛。(というのも、そういえばDatabricksはSparkベースなので、Python実装のコードがそのまま動かないパターンが散見され、修正にちょっと時間がかかりそうだったので・・・スミマセン笑)
ちなみに、追加のライブラリをインストールする必要があるときは、以下にまとめた方法からインストールできます。
その他の機能
少々乱雑なくくり方ですが、その他の機能についてもみておきます。
ジョブ機能
Azure Databricksでは、ジョブを組むことができます。この機能を使うことで、ETL処理などを自動化することができます。
https://docs.microsoft.com/ja-jp/azure/databricks/jobs
実際に試してみましょう。Jobs > Create Jobと進みます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-126.png?resize=728%2C319&ssl=1)
ジョブは、複数のタスクから構成されます。ジョブ作成画面では、ジョブの名称と、ジョブが含むタスクの追加が行えます。
タスクでは、既存のNotebookを実行したり、jarファイルやpythonコードを指定することができます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-127.png?resize=728%2C394&ssl=1)
こんな感じでタスクをどんどん追加していくことができます。また、各タスクの実行スケジュールを定義することもできます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/03/image-128.png?resize=728%2C336&ssl=1)
リポジトリ連携
Azure Databricksでは、リモートリポジトリとの連携もできます。機能概要ページの公式Docはなぜかまだ日本語されていない模様・・・いちおうはっておきます
https://docs.microsoft.com/ja-jp/azure/databricks/repos/
この機能を使うことで、作成したNotebookなどをその場でリモートリポジトリにCommitしたりできるようです。
https://docs.microsoft.com/ja-jp/azure/databricks/notebooks/github-version-control
以上、Azure Databricksを使ってみたメモでした。まだまだDatabricksを使うユースケースはあると思いますが、ぶちあたるたび順次更新していきたいと思います。
今日はいったんここまで。最後までご覧いただきありがとうございました!
おしまい
コメントを残す