Databricks Community Editionを使用する方法について解説します。
Contents
Databricksとは
Databricksは、ビックデータ分析や機械学習に特化したソフトウェアの企業です。Databricksは、Apache Sparkの開発者を中心として立ち上げられ、レイクハウスという概念を提唱して広げていった先駆者として有名です。なお、提供されているデータ基盤のサービス名もDatabricksと言います。
Databricksは、データの蓄積・加工から機械学習までの一連のデータ活用を強力にサポートしてくれるサービスです。Databricksは今後のデータ活用の中心的なサービスの一つになると私は考えています。
Databricksでは、AWSやAzureなどのクラウド環境上で用意するのが一般的ですが、学習等で試してみたいといった場合、クラウド環境の準備は費用的にも負担がかかります。このような時には、Databricks Community Editionで使用してみることがおすすめです。
Databricks Community Editionは、機能が限定されますが、期限なく無償で利用することができます。この記事では、Databricks Community Editionを使用する方法について説明します。
Databricks Community Editionの始め方
Databricks Community Editionは、独自のクラウドアカウントやコンピューティングリソース、ストレージリソースを用意する必要がなくDatabricksを試すことができます。
ただし、Databricks Platform Free Trialで利用できるいくつかの機能(REST APIなど)は、Databricks Community Editionでは利用できないので注意してください。
Databricksのアカウント作成とサインアップ
Databricks Community Editionにサインアップするには以下の手順で実施できます。
※以降で表示する画面は、記事執筆当時のもので変更されている可能性があります
Databricks 無料トライアルにアクセスし、氏名やメールアドレスといった情報を入力して「続行」をクリックします。
個人で利用の欄の「Community Editionのトライアルを開始」をクリックします。
登録したメールアドレスにアドレス確認のメールが届きます。メールアドレスを認証するリンクがありますので、リンクをクリックしてください。
以下のようにパスワードの設定画面が出ますのでパスワードを設定します。
Databricks画面にログインしますが、右上に日本語設定の画面が出ますので、日本語で使いたい人は「日本語を使う」ボタンを押してもらうと日本語画面で使用できます。
以下のような画面にログインができれば、Databricksを利用する環境が整います。
再度ログインする場合は「Community Editionログインページ」からログインするようにしてください。
Databricksの使用方法
Notebookを使ってプログラムを実行する簡単な例でDatabricksを使う手順を紹介します。Databricksは大きく以下のような手順で使用します。
- クラスターの作成と起動:プログラムを実行する環境を作成して起動します。
- Notebookの作成:プログラムを作成します。
- Notebookの実行:プログラムを実行します。
ここで、クラスターとは機能を実行する処理環境であると思ってください。作成したNotebookは作成したクラスター上で実行されます。また、Notebookはプログラムを記載するファイルのことです。
Jupyter Notebookを使用したことがある人は同じようなものであると思ってもらえればよいですが、相互に完全な互換性があるわけではありません。
クラスターの作成と起動
画面左の「クラスター」をクリックします。最初の時点では実行のためのコンピュート用クラスターがないため「コンピューティングを作成」をクリックして作成します。
クラスター作成画面で項目を入力・選択して「コンピューティングを作成」をクリックします。クラスターの作成・起動までには数分程度かかる場合があります。
- コンピュート名:作成するクラスターの名前を設定します。
- Databricks Runtimeのバージョン:Runtime環境のバージョンをプルダウンから選択します。
- インスタンス:インスタンスは無料の15GBメモリで1~2時間のアイドル状態で自動終了します。
クラスターの画面が表示され、実行中のマークがついていれば作成と起動が完了です。
Notebookの作成
次にプログラムを実際に作って動かしてみましょう。
Databricksに登録するとワークスペースのUsersの下に登録メールアドレスのユーザーが作られています。当該ワークスペースを使うことでプログラミングやファイルの作成を行っていくことができます。
作成ボタンから「ノートブック」を選択するとNotebook画面が表示されます。
Notebook画面左上でファイル名を変更でき、画面右側でクラスターを指定できます。
Notebookのデフォルト言語は「Python」になっていますが、SQLやScala、Rといった言語を指定することもできます。
なお、Databricksではセルごとに実行言語を指定できるミックス言語に対応しています。セルの冒頭でマジックコマンド%<language>
を指定します。具体的には「%python
」「%r
」「%scala
」「%sql
」です。これにより、Pythonがデフォルトのノートブックの途中でSQLを発行するといったことも簡単にできます。
また、「%md
」とすることでMarkdownのテキストを記載できるので、プログラムの内容を記載しておくことも可能です。
サンプルプログラムを作成してみる
実際に簡単なプログラムを作成してみましょう。PySparkのデータフレームを作成して、テーブルに保存、読みだして表示という一連の流れを作成してみましょう。
データを生成する
以下のようなプログラムを、Databricksのセルに入力して、セルの▶ボタンを押すか、「Shift + Enter」で実行します。
from pyspark.sql.types import StructType, StructField, StringType, IntegerType # スキーマ定義 schema = StructType( [ StructField("name", StringType(), True), StructField("age", IntegerType(), True), ] ) # データを作成 data = [("Taro", 25), ("Hanako", 30), ("Yuki", 20)] # スキーマを指定してデータフレームを作成 df = spark.createDataFrame(data, schema=schema) # DataFrameの内容表示 # df.show() display(df)
実際には以下のようにとなります。
データ表示は、DataFrameのshow
メソッドで表示してもいいのですが、Databricksではdisplay
という高機能なデータ表示機能が使用できます。
各列の値でソートができたり、+ボタンで「可視化」や「データプロファイル」をクリックすることでデータフレームの内部の情報を集計した内容を確認したりできます。
「可視化」では、データに対してバーやヒストグラムといった基本的な可視化をすることが可能です。
データプロファイルでは、以下のように各列のプロファイル情報を表示できます。平均などの統計値や、データ欠損がどれだけあるかなどデータに対する情報を簡単に取り出せるため、その後のデータ加工に非常に役立ちます。
データを書き込む
次にデータをDelta Lakeのテーブルに書き込んでみましょう。以下のような内容をセルに打ち込んで実行してください。
# データの書き込み df.write.format("delta").mode("overwrite").saveAsTable("test_table")
上記実行によりDataFrameの内容は「test_table
」というテーブル名で保存されます。このデータはDelta Lake形式で保存されます。Delta Lakeについては「Delta Lakeの使い方の基本」も参考にしてください。
登録したテーブルは、データの「カタログ」として使用することができます。Community Editionでは、Hiveを利用したhive_metastore.default
というカタログに登録されます。画面左のカタログからdefault
をクリックすると作成したテーブルが見つけられます。
作成したtest_table
をクリックすると、テーブル情報を確認できます。
有償のDatabricksでは、Unity Catalogという高機能なカタログが使用できますが、Community Editionでは使用できません。Unity Catalogでは、スキーマ、テーブルを階層的に管理でき、メタデータに対して一貫したセキュリティポリシーやアクセス制御ができるなど、より強力にデータガバナンスの実現ができます。
データを読み込む
カタログに登録したテーブルのデータを読み込むには以下のようなコードで簡単に読み込みが実行できます。
# データの読み込み df_read = spark.read.format("delta").table("test_table") display(df_read)
具体的な実行結果では以下のようになります。
まとめ
Databricks Community Editionを使用する方法について解説しました。
Databricksは、データ活用のための非常に高機能なデータ基盤サービスです。一般的には、AWSやAzureなどのクラウド環境上で用意しますが、学習用などに使ってみたい場合には、Databricks Community Editionを使用するのがおすすめです。
この記事では、Community Editionの準備をして、クラスター作成・Notebookの実行までの一連の流れについて紹介をしました。
Databricksは、今後のデータ活用の中心的なサービスの一つになると私は思っています。Community Editionを使って、どのようなサービスか無料で試してもらえると良いかと思います。また、有償版では、Unity CatalogなどCommunity Editionでは使用できない優れたサービスもありますので、是非企業での活用も検討してみてください。