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.

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.

  1. 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říklad spark.range(1,10).show(). Pokud nedošlo k žádným chybám, úspěšně jste se připojili.

  2. 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.

  3. Pokud chcete prostředí Spark zastavit, stiskněte Ctrl + d nebo Ctrl + znebo spusť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šší.