DatabricksというApache Sparkベースのビッグデータ分析プラットフォームがあります。

Databricks
https://databricks.com/

Azure Databricks
https://azure.microsoft.com/ja-jp/services/databricks/

これを使うとクラウド上に格納した大規模なデータに対して、
Jupyter Notebookのようなインタフェースで、
データ分析、可視化、機械学習などを行うことが出来ます。

Databricksに限った話では無いのですが。
インタラクティブな環境は、アドホックな分析には使いやすいのですが。
定型的な前処理の実装や、関数に分割して確認しながらロジックを実装する場合は、
IDEの方が効率良いことも多いと考えられます。

そこで、Databricksでは、
(私がドキュメントを眺めてみた感じでは)以下の2つの方法を用意しているようです。

  • (1)ローカルPC上で開発したコードをビルド、jarにしてclusterに追加して実行する
  • (2)DatabricksのWorkspaceと、ローカルPCをDatabrciksCLIで同期する

今回、わたしが書こうとしたコードの範囲では、
(1)の方法をやるほどでも無かったので、ここでは(2)の方法を紹介します。

# (1)の方法を行う場合は、sbtのpluginが用意されているようなので、
# 以下を参照下さい。
#
# sbt Plugin | docs.databricks.com
# https://docs.databricks.com/user-guide/dev-tools/sbt-plugin.html
#
# databricks/sbt-databricks | GitHub
# https://github.com/databricks/sbt-databricks

ソースファイルの同期には、以下のCLIが利用出来ます。

Databricks CLI | docs.databricks.com
https://docs.databricks.com/user-guide/dev-tools/databricks-cli.html

databricks/databricks-cli | GitHub
https://github.com/databricks/databricks-cli

Python製なので、以下のようにpipでインストールします。

$ pip install databricks-cli

Databrciskの認証情報を設定します。
~/.databrickscfg に保存されます。

$ databricks configure
Databricks Host (should begin with https://): <ホスト名を入力>
Username: <ユーザ名を入力>
Password: <パスワードを入力>
Repeat for confirmation: <パスワードを入力>

ここまで出来れば、以下のようにファイルを同期できます。

workspaceのファイルリスト表示。

databricks workspace ls /Users/<ユーザ名>

workspace上のソースのexport。

databricks workspace export_dir <Workspace上の対象パス> <ローカルPCのパス>

workspace上へのソースのimport。

databricks workspace import_dir <ローカルPCのパス> <Workspace上の対象パス>

その他のサブコマンドやオプションは、以下に記載されています。

Workspace CLI | docs.databricks.com
https://docs.databricks.com/user-guide/dev-tools/databricks-cli.html#workspace-cli

インタラクティブなUIとIDE、適材適所で使い分けていきたいですね。