Aracılığıyla paylaş


Python için Databricks Connect'in gelişmiş kullanımı

Not

Bu makale Databricks Runtime 14.0 ve üzeri için Databricks Connect'i kapsar.

Bu makalede Databricks Connect'in temel kurulumunun ötesindeki konular açıklanmaktadır.

Spark Connect bağlantı dizesi yapılandırma

Kümeye bağlantı yapılandırma başlığı altında açıklanan seçenekleri kullanarak kümenize bağlanmanın yanı sıra Spark Connect bağlantı dizesi kullanarak daha gelişmiş bir seçenek de bağlanıyor. dizesini işlevde remote geçirebilir veya ortam değişkenini SPARK_REMOTE ayarlayabilirsiniz.

Not

Spark Connect bağlantı dizesi kullanarak bağlanmak için yalnızca Databricks kişisel erişim belirteci kimlik doğrulamasını kullanabilirsiniz.

işlevini kullanarak remote bağlantı dizesi ayarlamak için:

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

Alternatif olarak ortam değişkenini SPARK_REMOTE ayarlayın:

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

Ardından sınıfını DatabricksSession aşağıdaki gibi başlatın:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Pyspark kabuğu

Python için Databricks Connect, Databricks Connect'i kullanmak üzere yapılandırılmış bir PySpark REPL (Spark kabuğu) ikili dosyasıyla birlikte pyspark sağlanır. REPL şu şekilde çalıştırılarak başlatılabilir:

pyspark

Ek parametre olmadan başlatıldığında, Azure Databricks kümesine bağlanmak için ortamdan DATABRICKS_ (örneğin, ortam değişkenleri veya DEFAULT yapılandırma profili) varsayılan kimlik bilgilerini alır.

REPL başlatıldıktan sonra nesnesi, spark Databricks kümesinde Apache Spark komutlarını çalıştıracak şekilde yapılandırılmış olarak kullanılabilir.

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

REPL, parametresi bir Spark connect bağlantı dizesi ile yapılandırılarak --remote farklı bir uzak ağa bağlanacak şekilde yapılandırılabilir.

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

Kabuğu durdurmak için veya tuşuna basın Ctrl + d ya da komutunu quit() veya exit()komutunu çalıştırın.Ctrl + z

Ek HTTP üst bilgileri

Databricks Connect, HTTP/2 üzerinden gRPC aracılığıyla Databricks Kümeleri ile iletişim kurar.

Bazı ileri düzey kullanıcılar, istemcilerinden gelen istekler üzerinde daha iyi denetim sahibi olmak için istemci ile Azure Databricks kümesi arasında bir proxy hizmeti yüklemeyi seçebilir.

Ara sunucular, bazı durumlarda HTTP isteklerinde özel üst bilgiler gerektirebilir.

yöntemi, headers() HTTP isteklerine özel üst bilgiler eklemek için kullanılabilir.

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

Sertifikalar

Kümeniz Azure Databricks çalışma alanı tam etki alanı adını (FQDN) çözümlemek için özel bir SSL/TLS sertifikası kullanıyorsa, yerel geliştirme makinenizde ortam değişkenini GRPC_DEFAULT_SSL_ROOTS_FILE_PATH ayarlamanız gerekir. Bu ortam değişkeni, kümede yüklü sertifikanın tam yoluna ayarlanmalıdır.

Örneğin, bu ortam değişkenini Python kodunda aşağıdaki gibi ayarlarsınız:

import os

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

Ortam değişkenlerini ayarlamanın diğer yolları için işletim sisteminizin belgelerine bakın.

Günlükleri günlüğe kaydetme ve hata ayıklama

Python için Databricks Connect, standart Python günlüğünü kullanarak günlükler oluşturur.

Günlükler standart hata akışına (stderr) yayılır ve varsayılan olarak yalnızca UYARI düzeyindeki günlüklerdir ve daha yüksek bir günlük gönderilir.

Ortam değişkeninin SPARK_CONNECT_LOG_LEVEL=debug ayarlanması bu varsayılanı değiştirir ve tüm günlük iletilerini hem düzeyde hem DEBUG de daha yüksek bir düzeyde yazdırır.