1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricks Connect v2 利用してみた(どこからでもSpark実行)

Last updated at Posted at 2023-04-24

はじめに

Databricks Connect v2がリリースされ、どこからでも簡単にSparkコードの実行ができるようになりました。従来のようにSQLを書く必要もありません(Python、Java、Scala、Rに対応)。IDEで利用してもいいですし、Applicationに組み込んだ実行も可能です。

SQL クエリを使用した python 開発の場合、Databricks では、Databricks Connect ではなくPython 用 Databricks SQL コネクタを使用することをお勧めします。 Python 用 Databricks SQL コネクタは、Databricks Connect よりも設定が簡単です。 また、ジョブがリモートのコンピューティングリソース上で実行されている間、Databricks Connect はローカル コンピューター上で実行されているジョブの解析および計画を行います。 これにより、特にランタイムエラーのデバッグが困難になる可能性があります。 Python 用 Databricks SQL コネクタは、リモートのコンピューティングリソースに SQL クエリを直接送信し、結果をフェッチします。

image.png

Databricks Connectのドキュメントはこちらをご覧ください。
AWS | Azure

前提条件 - Requirement

  • Databricks Runtime 13.0以降(通常ライブラリとMLライブラリ両方対応)
  • Unity Catalogが有効なDatabricksワークスペースとそれに対応するアカウント
  • Unity Catalogをサポートしているクラスター (Access Mode)

(*)現状、DBSQLには対応していないので要注意!

Setup

1. まずはvenvなどで、実行環境を準備

# Linux and macOS
python3.10 -m venv ./.venv
source .venv/bin/activate

2. Databricks Connectをinstall

pip3 install --upgrade "databricks-connect==13.0.*"  # Or X.Y.* to match your cluster version.

3. Connection Profileの構成

今回は、Databricks CLIがインストールしてあるので、そちらのプロファイルを利用します。
(直接構成する場合などは、こちらをご覧ください。 )

  • <profile-name> : databricks-cliで作成されたプロファイル (例:DEFAULT)
  • <CLUSTER_ID> : databricks cluster-id (例:0123-090981-wxxxxxx) (cluster idの確認)
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(profile = "<profile-name>",cluster_id="<CLUSTER_ID>")
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

4. 実行

上記のProfileコードについで以下のコードを追加して、dbconnect_test.pyとして保存し実行してみます。

df = spark.table("samples.nyctaxi.trips").limit(10).toPandas()
print(df)

Clusterが停止している時は、上記のコード実行とともに起動しますが、タイムアウトエラーになることもあるので、起動しておいた方がお勧めです。
image.png

Plotly Dash のサンプルを動作させてみる。

Blogには、Plotly Dashと Databricks Connectを使ったサンプルコードが参照できます。
https://github.com/databricks-demos/dbconnect-plotly

こちらをセットアップして利用してみます。

  1. まずは手元のVSCodeで、上記のレポジトリーをクローンする
  2. ターミナルを開いて、venvを作成&activate
  3. pip install -r requirements.txt にて、dbconnectなどをinstall
  4. app.pyファイル内の profile , cluster_id を編集。
  5. app.pyを実行し、表示されたURLにアクセス

簡単にデモ環境の完成です。

image.png

その他

IDE利用時にはDebugなどの機能も利用できます。
Databricks Extension for VSCodeでDebugがサポートされました

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?