Penggunaan lanjutan Databricks Connect untuk Python
Catatan
Artikel ini membahas Databricks Connect untuk Databricks Runtime 14.0 ke atas.
Artikel ini menjelaskan topik yang melampaui penyiapan dasar Databricks Connect.
Mengonfigurasi string koneksi Spark Connect
Selain menyambungkan ke kluster Anda menggunakan opsi yang diuraikan dalam Mengonfigurasi koneksi ke kluster, opsi yang lebih canggih adalah menyambungkan menggunakan string koneksi Spark Connect. Anda dapat meneruskan string dalam remote
fungsi atau mengatur SPARK_REMOTE
variabel lingkungan.
Catatan
Anda hanya dapat menggunakan autentikasi token akses pribadi Databricks untuk terhubung menggunakan string koneksi Spark Connect.
Untuk mengatur string koneksi menggunakan remote
fungsi :
# 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()
Atau, atur SPARK_REMOTE
variabel lingkungan:
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Kemudian inisialisasi DatabricksSession
kelas sebagai berikut:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Shell Pyspark
Databricks Connect untuk Python dikirim dengan pyspark
biner yang merupakan PySpark REPL (shell Spark) yang dikonfigurasi untuk menggunakan Databricks Connect. REPL dapat dimulai dengan menjalankan:
pyspark
Ketika dimulai tanpa parameter tambahan, ia mengambil kredensial default dari lingkungan (misalnya., DATABRICKS_
variabel lingkungan atau DEFAULT
profil konfigurasi) untuk terhubung ke kluster Azure Databricks.
Setelah REPL dimulai, spark
objek tersedia dikonfigurasi untuk menjalankan perintah Apache Spark pada kluster Databricks.
>>> spark.range(3).show()
+---+
| id|
+---+
| 0|
| 1|
| 2|
+---+
REPL dapat dikonfigurasi untuk terhubung ke jarak jauh yang berbeda dengan mengonfigurasi --remote
parameter dengan string koneksi sambungkan Spark.
pyspark --remote "sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>"
Untuk menghentikan shell, tekan Ctrl + d
atau Ctrl + z
, atau jalankan perintah quit()
atau exit()
.
Header HTTP tambahan
Databricks Connect berkomunikasi dengan Kluster Databricks melalui gRPC melalui HTTP/2.
Beberapa pengguna tingkat lanjut dapat memilih untuk menginstal layanan proksi antara klien dan kluster Azure Databricks, untuk memiliki kontrol yang lebih baik atas permintaan yang berasal dari klien mereka.
Proksi, dalam beberapa kasus, mungkin memerlukan header kustom dalam permintaan HTTP.
Metode headers()
ini dapat digunakan untuk menambahkan header kustom ke permintaan HTTP mereka.
spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()
Sertifikat
Jika kluster Anda bergantung pada sertifikat SSL/TLS kustom untuk menyelesaikan ruang kerja Azure Databricks nama domain yang sepenuhnya memenuhi syarat (FQDN), Anda harus mengatur variabel GRPC_DEFAULT_SSL_ROOTS_FILE_PATH
lingkungan pada komputer pengembangan lokal Anda. Variabel lingkungan ini harus diatur ke jalur lengkap ke sertifikat yang diinstal pada kluster.
Misalnya, Anda mengatur variabel lingkungan ini dalam kode Python sebagai berikut:
import os
os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"
Untuk cara lain untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.
Log pengelogan dan debug
Databricks Connect for Python menghasilkan log menggunakan pengelogan Python standar.
Log dipancarkan ke aliran kesalahan standar (stderr) dan secara default hanya log pada tingkat WARN dan yang lebih tinggi yang dipancarkan.
Mengatur variabel SPARK_CONNECT_LOG_LEVEL=debug
lingkungan akan mengubah default ini dan mencetak semua pesan log pada tingkat dan yang DEBUG
lebih tinggi.