الاستخدام المتقدم ل 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
المستوى وأعلى.