الاستخدام المتقدم ل Databricks Connect ل Python

إشعار

تتناول هذه المقالة Databricks Connect ل Databricks Runtime 14.0 وما فوق.

توضح هذه المقالة الموضوعات التي تتجاوز الإعداد الأساسي ل Databricks Connect.

تكوين سلسلة الاتصال Spark Connect

بالإضافة إلى الاتصال بالمجموعة باستخدام الخيارات الموضحة في تكوين اتصال بمجموعة، هناك خيار أكثر تقدما وهو الاتصال باستخدام سلسلة الاتصال Spark Connect. يمكنك تمرير السلسلة في الدالة remote أو تعيين SPARK_REMOTE متغير البيئة.

إشعار

يمكنك فقط استخدام مصادقة رمز الوصول الشخصي Databricks للاتصال باستخدام سلسلة الاتصال Spark Connect.

لتعيين سلسلة الاتصال باستخدام الدالة remote :

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

بدلا من ذلك، قم بتعيين SPARK_REMOTE متغير البيئة:

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

ثم قم بتهيئة DatabricksSession الفئة كما يلي:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Pyspark shell

Databricks Connect ل Python يشحن مع pyspark ثنائي وهو PySpark REPL (Spark shell) تم تكوينه لاستخدام Databricks Connect. يمكن بدء REPL عن طريق تشغيل:

pyspark

عند البدء بدون معلمات إضافية، فإنه يلتقط بيانات الاعتماد الافتراضية من البيئة (على سبيل المثال، DATABRICKS_ متغيرات البيئة أو DEFAULT ملف تعريف التكوين) للاتصال بمجموعة Azure Databricks.

بمجرد بدء REPL، spark يتوفر الكائن الذي تم تكوينه لتشغيل أوامر Apache Spark على مجموعة Databricks.

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

يمكن تكوين REPL للاتصال بجهاز تحكم عن بعد مختلف عن طريق تكوين المعلمة --remote باستخدام سلسلة الاتصال اتصال Spark.

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

لإيقاف shell، اضغط Ctrl + d أو Ctrl + z، أو قم بتشغيل الأمر quit() أو exit().

رؤوس HTTP إضافية

يتصل Databricks Connect مع مجموعات Databricks عبر gRPC عبر HTTP/2.

قد يختار بعض المستخدمين المتقدمين تثبيت خدمة وكيل بين العميل والمجموعة Azure Databricks، للحصول على تحكم أفضل في الطلبات الواردة من عملائهم.

قد يتطلب الوكلاء، في بعض الحالات، رؤوسا مخصصة في طلبات HTTP.

headers() يمكن استخدام الأسلوب لإضافة عناوين مخصصة إلى طلبات HTTP الخاصة بهم.

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

الشهادات

إذا كانت مجموعتك تعتمد على شهادة SSL/TLS مخصصة لحل اسم مجال مؤهل بالكامل (FQDN) لمساحة عمل Azure Databricks، فيجب عليك تعيين متغير GRPC_DEFAULT_SSL_ROOTS_FILE_PATH البيئة على جهاز التطوير المحلي. يجب تعيين متغير البيئة هذا إلى المسار الكامل إلى الشهادة المثبتة على نظام المجموعة.

على سبيل المثال، يمكنك تعيين متغير البيئة هذا في تعليمة Python البرمجية كما يلي:

import os

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

للحصول على طرق أخرى لتعيين متغيرات البيئة، راجع وثائق نظام التشغيل الخاص بك.

سجلات التسجيل والتصحيح

ينتج Databricks Connect ل Python سجلات باستخدام تسجيل Python القياسي.

يتم إرسال السجلات إلى دفق الخطأ القياسي (stderr)، وبشكل افتراضي، تكون السجلات فقط على مستوى WARN ويتم إصدار أعلى.

سيؤدي تعيين متغير SPARK_CONNECT_LOG_LEVEL=debug بيئة إلى تعديل هذا الافتراضي وطباعة جميع رسائل السجل على DEBUG المستوى وأعلى.