Sdílet prostřednictvím


Pokročilé využití Databricks Connect pro Python

Poznámka:

Tento článek popisuje Databricks Connect pro Databricks Runtime 14.0 a vyšší.

Tento článek popisuje témata, která překračují základní nastavení Databricks Connect.

Konfigurace připojovací řetězec Spark Connect

Kromě připojení ke clusteru pomocí možností popsaných v části Konfigurace připojení ke clusteru se pomocí připojovací řetězec Spark Connect připojuje pokročilejší možnost. Řetězec můžete předat funkci remote nebo nastavit proměnnou SPARK_REMOTE prostředí.

Poznámka:

K připojení pomocí připojovací řetězec Spark Connect můžete použít pouze ověřování tokenů pat pro Databricks.

Nastavení připojovací řetězec pomocí remote funkce:

# 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()

Případně nastavte proměnnou SPARK_REMOTE prostředí:

sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>

Pak inicializovat DatabricksSession třídu následujícím způsobem:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Prostředí Pyspark

Databricks Connect pro Python se dodává s binárním souborem pyspark , který je PySpark REPL (prostředí Sparku) nakonfigurované tak, aby používalo Databricks Connect. RePL můžete spustit spuštěním následujícího příkazu:

pyspark

Když začnete bez dalších parametrů, převezme z prostředí výchozí přihlašovací údaje (například DATABRICKS_ proměnné prostředí nebo DEFAULT konfigurační profil) pro připojení ke clusteru Azure Databricks.

Po spuštění spark REPL je objekt k dispozici pro spouštění příkazů Apache Sparku v clusteru Databricks.

>>> spark.range(3).show()
+---+
| id|
+---+
|  0|
|  1|
|  2|
+---+

RePL je možné nakonfigurovat tak, aby se připojil k jinému vzdálenému připojení, a to konfigurací parametru --remote pomocí připojovací řetězec Spark Connect.

pyspark --remote "sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>"

Pokud chcete prostředí zastavit, stiskněte Ctrl + d nebo Ctrl + zspusťte příkaz quit() nebo exit().

Další hlavičky HTTP

Databricks Connect komunikuje s clustery Databricks přes gRPC přes HTTP/2.

Někteří pokročilí uživatelé se můžou rozhodnout nainstalovat proxy službu mezi klientem a clusterem Azure Databricks, aby měli lepší kontrolu nad požadavky přicházejícími ze svých klientů.

Proxy servery můžou v některých případech vyžadovat vlastní hlavičky v požadavcích HTTP.

Metodu headers() lze použít k přidání vlastních hlaviček do požadavků HTTP.

spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()

Certifikáty

Pokud váš cluster využívá vlastní certifikát SSL/TLS k překladu plně kvalifikovaného názvu domény pracovního prostoru Azure Databricks, musíte nastavit proměnnou GRPC_DEFAULT_SSL_ROOTS_FILE_PATH prostředí na místním vývojovém počítači. Tato proměnná prostředí musí být nastavená na úplnou cestu k nainstalovanému certifikátu v clusteru.

Tuto proměnnou prostředí například nastavíte v kódu Pythonu takto:

import os

os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"

Další způsoby nastavení proměnných prostředí najdete v dokumentaci k vašemu operačnímu systému.

Protokolování a ladění protokolů

Databricks Connect pro Python vytváří protokoly pomocí standardního protokolování Pythonu.

Protokoly se generují do standardního chybového streamu (stderr) a ve výchozím nastavení se vygenerují pouze protokoly na úrovni WARN a vyšší.

Nastavení proměnné SPARK_CONNECT_LOG_LEVEL=debug prostředí upraví toto výchozí nastavení a vytiskne všechny zprávy protokolu na DEBUG úrovni a vyšší.