Pokročilé využití Databricks Connect

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ího řetězce Spark Connect

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

Poznámka:

K připojení pomocí připojovacího řetězce Spark Connect můžete použít pouze osobní přístupový token Databricks.

Python

Nastavení připojovacího řetězce pomocí remote funkce:

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>

Potom inicializujete DatabricksSession třídu:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

Nastavte proměnnou SPARK_REMOTE prostředí:

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

Potom inicializujete DatabricksSession třídu:

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder.getOrCreate()

Použití serveru Spark Connect s Databricks Connect

Volitelně můžete spustit Databricks Connect na opensourcový server Spark Connect.

Důležité

Některé funkce dostupné v Databricks Runtime a Databricks Connect jsou exkluzivní pro Databricks nebo ještě nejsou vydané ve open source Apache Sparku. Pokud váš kód spoléhá na tyto funkce, může následující postup selhat s chybami.

  1. Spusťte místní server Spark Connect. Podívejte se, jak používat Spark Connect

  2. Nakonfigurujte Databricks Connect. Nastavte proměnnou prostředí SPARK_REMOTE tak, aby odkazovala na váš místní server Spark Connect. Viz Připojení k Spark Connect pomocí klientů.

    export SPARK_REMOTE="sc://localhost"
    
  3. Inicializace relace Databricks:

    Python

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    

    Scala

    import com.databricks.connect.DatabricksSession
    
    val spark = DatabricksSession.builder.getOrCreate()
    

Další hlavičky HTTP

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

Pokud chcete mít lepší kontrolu nad požadavky přicházejícími z klientů, můžou se pokročilí uživatelé rozhodnout nainstalovat službu proxy mezi klientem a clusterem Azure Databricks. V některých případech můžou proxy vyžadovat vlastní hlavičky v požadavcích HTTP.

K přidání vlastních hlaviček do požadavků HTTP použijte metodu header():

Python

from databricks.connect import DatabricksSession

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

Scala

import com.databricks.connect.DatabricksSession

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

Certifikáty

Pokud váš cluster využívá vlastní certifikát SSL/TLS k rozlišení 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.

Python

Následující příklad nastaví tuto proměnnou prostředí:

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.

Scala

Java a Scala nenabízí způsoby konfigurace proměnných prostředí prostřednictvím kódu programu. Informace o tom, jak je nakonfigurovat jako součást aplikace, najdete v dokumentaci k operačnímu systému nebo integrovanému vývojovému prostředí.

Protokolování a ladění protokolů

Python

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í jsou vypnuté. 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šší.

Scala

Databricks Connect pro Scala používá protokolování SLF4J a neobsahuje žádné poskytovatele SLF4J.

U aplikací, které používají Databricks Connect, se očekává, že budou obsahovat poskytovatele SLF4J, a v určitých případech budou konfigurovány tak, aby tiskly protokolové zprávy.

  • Nejjednodušší možností je zahrnout poskytovatele slf4j-simple, který vypíše zprávy protokolu od úrovně INFO a vyšší do standardního chybového streamu (stderr).
  • Lépe konfigurovatelnou alternativou je použít zprostředkovatele slf4j-reload4j, který přebírá konfiguraci ze log4j.properties souboru ve třídní cestě.

Následující příklad ukazuje jednoduchý log4j.properties soubor.

log4j.rootLogger=INFO,stderr

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n

V předchozím příkladu se protokoly ladění vytisknou, pokud je kořenový protokolovací nástroj (nebo konkrétní protokolovací nástroj) nakonfigurovaný na DEBUG úrovni:

log4j.rootLogger=DEBUG,stderr