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.
Při spuštění bez dalších parametrů prostředí převezme výchozí přihlašovací údaje z prostředí (například DATABRICKS_
proměnné prostředí nebo DEFAULT
konfigurační profil) pro připojení ke clusteru Azure Databricks. Informace o konfiguraci připojení najdete v tématu Konfigurace výpočetních prostředků pro Databricks Connect.
Pokud chcete spustit prostředí Spark a připojit ho ke spuštěném clusteru, spusťte jeden z následujících příkazů z aktivovaného virtuálního prostředí Pythonu:
pyspark
Zobrazí se prostředí Spark, například:
Python 3.10 ... [Clang ...] on darwin Type "help", "copyright", "credits" or "license" for more information. Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 13.x.dev0 /_/ Using Python version 3.10 ... Client connected to the Spark Connect server at sc://...:.../;token=...;x-databricks-cluster-id=... SparkSession available as 'spark'. >>>
Po spuštění
spark
prostředí je objekt k dispozici ke spuštění příkazů Apache Sparku v clusteru Databricks. Spusťte jednoduchý příkaz PySpark, napříkladspark.range(1,10).show()
. Pokud nedošlo k žádným chybám, úspěšně jste se připojili.Informace o tom, jak pomocí prostředí Spark Shell s Pythonem spouštět příkazy na výpočetních prostředcích, najdete v interaktivní analýze v prostředí Spark Shell.
Pomocí předdefinované
spark
proměnné můžete znázorňovat spuštěnýSparkSession
cluster, například:>>> df = spark.read.table("samples.nyctaxi.trips") >>> df.show(5) +--------------------+---------------------+-------------+-----------+----------+-----------+ |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip| +--------------------+---------------------+-------------+-----------+----------+-----------+ | 2016-02-14 16:52:13| 2016-02-14 17:16:04| 4.94| 19.0| 10282| 10171| | 2016-02-04 18:44:19| 2016-02-04 18:46:00| 0.28| 3.5| 10110| 10110| | 2016-02-17 17:13:57| 2016-02-17 17:17:55| 0.7| 5.0| 10103| 10023| | 2016-02-18 10:36:07| 2016-02-18 10:41:45| 0.8| 6.0| 10022| 10017| | 2016-02-22 14:14:41| 2016-02-22 14:31:52| 4.51| 17.0| 10110| 10282| +--------------------+---------------------+-------------+-----------+----------+-----------+ only showing top 5 rows
Veškerý kód Pythonu běží místně, zatímco veškerý kód PySpark zahrnující operace datového rámce běží v clusteru ve vzdáleném pracovním prostoru Azure Databricks a odpovědi na spuštění se odešlou zpět do místního volajícího.
Pokud chcete prostředí Spark zastavit, stiskněte
Ctrl + d
neboCtrl + z
nebo spusťte příkazquit()
neboexit()
.
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šší.