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.