Databricks Community Editionを使用する方法

Databricks Community Edition を使用する方法について解説します。
目次
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 環境のバージョンをプルダウンから選択します。
- インスタンス:インスタンスは無料の 15 GBメモリで 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 では使用できない優れたサービスもありますので、是非企業での活用も検討してみてください。

