Databricks Connect for Python の高度な使用法
注:
この記事では、Databricks Runtime 14.0 以降の Databricks Connect について説明します。
この記事では、Databricks Connect の基本セットアップを超えるトピックについて説明します。
Spark Connect接続文字列を構成する
「クラスターへの接続を構成する」で説明されているオプションを使用してクラスターに接続するだけでなく、より高度なオプションとして、Spark Connect 接続文字列を使用して接続することもできます。 remote
関数で文字列を渡すか、 SPARK_REMOTE
環境変数を設定できます。
注:
Connect 接続文字列を使用して接続するには、 Databricks個人アクセストークン認証 のみを使用できます。Spark
remote
関数を使用して接続文字列を設定するには:
# Set the Spark Connect connection string in DatabricksSession.builder.remote.
from databricks.connect import DatabricksSession
workspace_instance_name = retrieve_workspace_instance_name()
token = retrieve_token()
cluster_id = retrieve_cluster_id()
spark = DatabricksSession.builder.remote(
f"sc://{workspace_instance_name}:443/;token={token};x-databricks-cluster-id={cluster_id}"
).getOrCreate()
または、 SPARK_REMOTE
環境変数を設定します。
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
次に、次のように DatabricksSession
クラスを初期化します。
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
PySparkシェル
Databricks Connect for Python には、Databricks Connect を使用するように構成された PySpark REPL (Spark シェル) であるpyspark
バイナリが付属しています。 REPL は、次のコマンドを実行して開始できます。
pyspark
追加のパラメーターを指定せずに起動すると、環境 ( DATABRICKS_
環境変数やDEFAULT
構成プロファイルなど) からデフォルトの認証情報を取得して、Databricks クラスターに接続します。
REPL が起動すると、Databricks クラスターで Apache Spark コマンドを実行するように構成されたspark
オブジェクトが利用可能になります。
>>> spark.range(3).show()
+---+
| id|
+---+
| 0|
| 1|
| 2|
+---+
Spark 接続接続文字列を使用して--remote
を構成することで、別のリモートに接続するように REPL を構成できます。
pyspark --remote "sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>"
シェルを停止するには、 Ctrl + d
またはCtrl + z
を押すか、コマンドquit()
またはexit()
を実行します。
追加の HTTP ヘッダー
Databricks Connect は、HTTP/2 経由で gRPC 経由で Databricks クラスターと通信します。
一部の上級ユーザーは、クライアントからのリクエストをより適切に制御するために、クライアントと Databricks クラスターの間にプロキシ サービスをインストールすることを選択する場合があります。
プロキシは、場合によっては、HTTPリクエストにカスタムヘッダーを必要とすることがあります。
headers()
メソッドを使用して、HTTPリクエストにカスタムヘッダーを追加できます。
spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()
証明 書
クラスターが Databricks ワークスペースの完全修飾ドメイン名 (FQDN) を解決するためにカスタム SSL/TLS 証明書に依存している場合は、ローカル開発マシンで環境変数GRPC_DEFAULT_SSL_ROOTS_FILE_PATH
を設定する必要があります。 この環境変数は、クラスターにインストールされている証明書への完全なパスに設定する必要があります。
たとえば、この環境変数を Python コードで次のように設定します。
import os
os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"
環境変数を設定する他の方法については、オペレーティング システムのドキュメントを参照してください。
ログ記録とデバッグログ
Databricks Connect for Python は、標準のPython ログを使用してログを生成します。
ログは標準エラー ストリーム ( stderr ) に出力され、デフォルトでは WARN レベル以上のログのみが出力されます。
環境変数SPARK_CONNECT_LOG_LEVEL=debug
を設定すると、このデフォルトが変更され、 DEBUG
レベル以上のすべてのログ メッセージが出力されます。