【Azure Databricks徹底解剖 】実際に使ってみたの巻

こんばんは。今回は、Azure Databricksについて知ったことをこの記事にまとめていきたいと思います。

前回は、全体感を掴むことを目的とした記事でしたが、今回は、実際にサービスを使ってみることにフォーカスしていきたいと思います。

それではまいります。

Azure Databricksでデータ分析・機械学習

まず、リソースの作成と、クラスターの準備です。まいります。

リソースの作成

Azure DatabricksはAzure Marketplaceから作成できます。「Databricks」と検索すると出てくるかと思います。

リソースの作成では、ワークスペース名、リージョン、SKUを指定します。

よりセキュアにデプロイするためのネットワークオプションも指定可能です。

デプロイは、ほんの数分程度で完了しました!リソースのUIは以下。Azure Machine LearningやCognitive Serviceなどと同様、ここからワークスペースを起動して利用する形式のようですね。

「ワークスペースの起動」に進むとAzureらしからぬ画面(DatabricksのUIと同じなのかな・・?)に遷移しました。

まず困ったのが、ワークスペースが”Data Science & Engineering”と”Machine Learning”で切り替えられるようになっていること。(SQLはありませんでした、たぶん価格プランによっては使えないのかな・・?)

あーよくみると、使える機能が微妙に違うようです。上がData Science。下がML。Notebookは共通ですが、Machine Learningの方ではAutoMLなどの機械学習系機能が使えて、Data Scienceの方ではData Import機能が使える模様。(私が思想を理解できていないだけかもしれないですが、なぜ切り替えないといけないのか謎ではあります・・)

クラスターの作成

次にクラスターの作成です。実際の分析や、機械学習はこのクラスター上で行われますので、とにもかくにもクラスターを作成しておかないといけないのです。

このクラスターはMachine LearningでもData Scienceで共通のようなので、どちらで作成してもよさそうです。

「Create Cluster」に進みます。

Clusterの設定では、Databricksランタイムバージョンやスケーリング、自動停止の設定などが行えます。

さらに、Advanced Optionsとして、SparkのCongigもいじれたりするようですね。

いざ、作成!おお、ここはさすが売りにしているだけあって、本当に一瞬で完了しました。

Notebookの作成

さて、それでは使ってみます。まずは、よくありそうな、Notebookを使ったアドホック分析・機械学習。

とりあえず、Machine LearningのNotebookを起動してみます。

Notebookの言語は、Python/R/Scalaに加えてSQLが選べます。

Noteが立ち上がりました!

データセットの作成

今回は、タイタニックのデータを使ってみます。なお、データはKaggleで公開されているものを利用します。

https://www.kaggle.com/c/titanic/data

さて、このデータをDatabricks上のNotebookから読み込める場所に配置せねばなりません。「Ingest data」に進みます。

するとCreate New Tableというタイトルで、いくつかの方法でデータの入力できる画面にうつりました。今回は、csvファイルをアップロードする形をとりました。

なお、csvをそのまま格納して、Notebook上でcsvを読み込む方法もありそうでしたので、リンクだけはっておきます。

https://docs.microsoft.com/ja-jp/azure/databricks/data/data

ここから「Create Table with UI」に進むと、クラスターの選択と、テーブルプレビューの確認ができるようになります。このままテーブルの作成を完了します。

*下のキャプチャのように、ヘッダが認識されていない場合には、「First row is header」チェックボックスにチェックをいれればOK。

さて、次は作成したテーブルのデータをNotebook上に読みだしてくる必要があります。

こちらの公式ドキュメントを参考にします。

https://docs.microsoft.com/ja-jp/azure/databricks/data/tables#access-a-table

以下のように、spark.sql()構文を使うことでテーブルデータの取得ができました!

Notebook上の実装

あとは実装していくだけです。が、今回は割愛。(というのも、そういえばDatabricksはSparkベースなので、Python実装のコードがそのまま動かないパターンが散見され、修正にちょっと時間がかかりそうだったので・・・スミマセン笑)

ちなみに、追加のライブラリをインストールする必要があるときは、以下にまとめた方法からインストールできます。

その他の機能

少々乱雑なくくり方ですが、その他の機能についてもみておきます。

ジョブ機能

Azure Databricksでは、ジョブを組むことができます。この機能を使うことで、ETL処理などを自動化することができます。

https://docs.microsoft.com/ja-jp/azure/databricks/jobs

実際に試してみましょう。Jobs > Create Jobと進みます。

ジョブは、複数のタスクから構成されます。ジョブ作成画面では、ジョブの名称と、ジョブが含むタスクの追加が行えます。

タスクでは、既存のNotebookを実行したり、jarファイルやpythonコードを指定することができます。

こんな感じでタスクをどんどん追加していくことができます。また、各タスクの実行スケジュールを定義することもできます。

リポジトリ連携

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を使うユースケースはあると思いますが、ぶちあたるたび順次更新していきたいと思います。

今日はいったんここまで。最後までご覧いただきありがとうございました!

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。