Databricks Connectのマニュアル - Qiitaで紹介された手順を実際に実施した内容となります。
Databricks ConnectはDatabricksランタイムのクライアントライブラリです。Databricks Connectを用いることで、お使いのIDE(Eclipse、IntelliJ、PyCharm、RStudio、Visual Studio Code)、ノートブックサーバー(Jupyter Notebook、Zeppelin)、他のカスタムアプリケーションからDatabricksクラスターに接続できます。
ここでは、PyCharmからDatabricksクラスターに接続する流れをご紹介します。
PyCharmのインストール
ローカルマシンにPyCharmがインストールされていない場合には、ダウンロードしてインストールします。
Databricksクラスターの作成
Databricks Connectを使用する際には、Databricksランタイムのバージョンに注意する必要があります。
こちらで説明されている通り、特定のバージョンのみがDatabricks Connectをサポートしています。また、使用するランタイムでサポートしているPythonのバージョンにも注意が必要です。ローカルマシンのIDEで使用するPythonのバージョンを一致させる必要があります。
ここでは、Python 3.8をサポートしているDatabricksランタイム9.1でクラスターを作成します。Databricksワークスペースにアクセスしてクラスターを作成しておきます。
パーソナルアクセストークンの作成
Databricks ConnectからDatabricksクラスターにアクセスする際には、パーソナルアクセストークンが必要となります。
サイドメニューのUser SettingsでAccess Tokensを開き、Generate New Tokenをクリックします。トークン名と有効期限を入力してGenerateをクリックします。
パーソナルアクセストークンが表示されるのでコピーしておきます。
パーソナルアクセストークンは厳重に管理してください。第三者に共有しないでください。
Databricks Connectのセットアップ
IDEを使用するローカルマシンでDatabricks Connectの設定を行います。以下の情報が必要となります。
- クラスターを作成したDatabricksのワークスペースURL
- 上で作成したDatabricksのパーソナルアクセストークン
- 作成したクラスターのID。クラスターページのURLからクラスターIDを取得できます。以下の例では、クラスターIDは
0304-201045-hoary804
となります。
Pythonバージョンの確認・設定
ここでローカルマシンにDatabricks Connectをインストールしますが、この際には後述するIDEで使用するPythonインタプリタを用いてインストールを行うようにしてください。複数のバージョンのPythonインタプリタが存在する場合には、Pyenvで切り替えるなどしてください。ここでは、クラスターと同じPython 3.8を使用するように設定します。
pyenv install 3.8.7
pyenv global 3.8.7
Databricks Connectのインストール
Terminal(Macの場合)で以下を実行します。databricks-connect==
以降の数字は上のDatabricksランタイムと同じものを指定する必要があります。最新のものがインストールされるように末尾は*
とします。
pip install -U "databricks-connect==9.1.*"
Databricks Connectの設定
以下を実行します。
databricks-connect configure
-
Databricks Host
には、上記ワークスペースのURLhttps://<ワークスペースのホスト名>/
を指定します。 -
Databricks Token
には、上で作成したパーソナルアクセストークンを指定します。 -
Cluster ID
には上で取得したクラスターIDを指定します。 -
Org ID
は空のままとします。 -
Port
には15001を指定します。
接続確認
以下を実行します。
databricks-connect test
以下のようなメッセージが最後に表示されれば接続は確立しています。
* Simple dbutils test passed
* All tests passed.
PyCharmの設定
上でDatabricks Connectをインストールする際に使用したPythonインタプリタをPyCharmで使用するように設定する必要があります。
New Projectを作成する際、Previously configured interpreterを選択します。ドロップダウンにDatabricks Connectをインストールする際に使用したPythonインタプリタがあれば選択し、存在しない場合には、右側の...
をクリックし、インタプリタを選択します。
main.pyファイルに以下の内容を貼り付けます。シンプルな動作確認用Pythonファイルです。
from pyspark.sql import SparkSession
from pyspark.dbutils import DBUtils
spark = SparkSession.builder.getOrCreate()
dbutils = DBUtils(spark)
print(dbutils.fs.ls("dbfs:/"))
main.pyファイルを右クリックし、**Modify Run Configuration...**をクリックします。環境変数にPYSPARK_PYTHON=python3
を追加します。
main.pyをRunします。以下のように[FileInfo(path='dbfs:...
と表示されれば、無事にPyCharmからDatabricksクラスターにアクセスできていることになります。