Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Artikel ini membahas Databricks Connect untuk Databricks Runtime 13.3 LTS ke atas.
Halaman ini menjelaskan berbagai cara untuk mengonfigurasi koneksi antara Databricks Connect dan Azure Databricks cluster atau komputasi tanpa server.
Databricks Connect memungkinkan Anda menghubungkan IDE populer seperti Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, server notebook, dan aplikasi kustom lainnya ke kluster Azure Databricks. Lihat Databricks Connect.
Pengaturan
Sebelum memulai, Anda memerlukan hal-hal berikut:
- Databricks Connect terinstal. Untuk persyaratan penginstalan, lihat Persyaratan penggunaan Databricks Connect.
- Nama instans ruang kerja Azure Databricks. Ini adalah nilai Nama Host Server untuk komputasi Anda. Lihat Dapatkan detail koneksi untuk sumber daya komputasi Azure Databricks.
- Jika Anda tersambung ke komputasi klasik, ID kluster Anda. Anda dapat mengambil ID kluster dari URL. Lihat URL dan ID sumber daya komputasi.
Mengonfigurasi koneksi ke kluster
Ada beberapa cara untuk mengonfigurasi koneksi ke kluster Anda. Databricks Connect mencari properti konfigurasi dalam urutan berikut, dan menggunakan konfigurasi pertama yang ditemukannya. Untuk informasi konfigurasi tingkat lanjut, lihat Penggunaan tingkat lanjut Databricks Connect.
- Metode remote() kelas DatabricksSession.
- Profil konfigurasi Databricks
- Variabel lingkungan DATABRICKS_CONFIG_PROFILE
- Variabel lingkungan untuk setiap properti konfigurasi
- Profil konfigurasi Databricks bernama DEFAULT
Metode dari kelas DatabricksSessionremote()
Untuk opsi ini, yang berlaku untuk Authenticate dengan token akses pribadi Azure Databricks (warisan) saja, tentukan nama instans ruang kerja, token akses pribadi Azure Databricks, dan ID kluster.
Anda dapat menginisialisasi kelas DatabricksSession dengan beberapa cara.
- Atur
host,token, dancluster_idpadaDatabricksSession.builder.remote(). - Gunakan kelas Databricks SDK
Config. - Tentukan profil konfigurasi Databricks dengan bidang
cluster_id.
Alih-alih menentukan properti koneksi ini dalam kode Anda, Databricks merekomendasikan untuk mengonfigurasi properti melalui variabel lingkungan atau file konfigurasi, seperti yang dijelaskan di seluruh bagian ini. Contoh kode berikut mengasumsikan bahwa Anda memberikan beberapa implementasi fungsi retrieve_* yang diusulkan untuk mendapatkan properti yang diperlukan dari pengguna atau dari beberapa penyimpanan konfigurasi lainnya, seperti Azure KeyVault.
Kode untuk masing-masing pendekatan ini adalah sebagai berikut:
Python
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
Scala
// Set the host, token, and clusterId fields in DatabricksSession.builder.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder()
.host(retrieveWorkspaceInstanceName())
.token(retrieveToken())
.clusterId(retrieveClusterId())
.getOrCreate()
Python
# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Scala
// Use the Databricks SDK's Config class.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setHost(retrieveWorkspaceInstanceName())
.setToken(retrieveToken())
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Python
# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Scala
// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Profil konfigurasi Databricks
Untuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang cluster_id dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang ingin Anda gunakan.
Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
hostdantoken. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
host, ,client_iddanclient_secret. - Untuk autentikasi pengguna ke mesin (U2M) OAuth (jika didukung): .
- Untuk autentikasi principal layanan Microsoft Entra ID (sebelumnya Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secret, dan mungkinazure_workspace_resource_id. - Untuk autentikasi Azure CLI:
host. - Untuk autentikasi identitas terkelola Azure (jika didukung):
host,azure_use_msi,azure_client_id, dan mungkinazure_workspace_resource_id.
Kemudian atur nama profil konfigurasi ini melalui kelas konfigurasi.
Anda dapat menentukan cluster_id dengan beberapa cara:
- Sertakan
cluster_idbidang di profil konfigurasi Anda, lalu cukup tentukan nama profil konfigurasi. - Tentukan nama profil konfigurasi beserta bidang
cluster_id.
Jika Anda telah mengatur DATABRICKS_CLUSTER_ID variabel lingkungan dengan ID kluster, Anda tidak perlu menentukan cluster_id.
Kode untuk masing-masing pendekatan ini adalah sebagai berikut:
Python
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
Scala
// Include the cluster_id field in your configuration profile, and then
// just specify the configuration profile's name:
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.getOrCreate()
Python
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Scala
// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Variabel DATABRICKS_CONFIG_PROFILE lingkungan
Untuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang cluster_id dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang ingin Anda gunakan.
Jika Anda telah mengatur DATABRICKS_CLUSTER_ID variabel lingkungan dengan ID kluster, Anda tidak perlu menentukan cluster_id.
Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
hostdantoken. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
host, ,client_iddanclient_secret. - Untuk autentikasi pengguna ke mesin (U2M) OAuth (jika didukung): .
- Untuk autentikasi principal layanan Microsoft Entra ID (sebelumnya Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secret, dan mungkinazure_workspace_resource_id. - Untuk autentikasi Azure CLI:
host. - Untuk autentikasi identitas terkelola Azure (jika didukung):
host,azure_use_msi,azure_client_id, dan mungkinazure_workspace_resource_id.
Atur DATABRICKS_CONFIG_PROFILE variabel lingkungan ke nama profil konfigurasi ini. Kemudian inisialisasi kelas DatabricksSession.
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Variabel lingkungan untuk setiap properti konfigurasi
Untuk opsi ini, atur DATABRICKS_CLUSTER_ID variabel lingkungan dan variabel lingkungan lain yang diperlukan untuk jenis autentikasi Databricks yang ingin Anda gunakan.
Variabel lingkungan yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
DATABRICKS_HOSTdanDATABRICKS_TOKEN. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
DATABRICKS_HOST, ,DATABRICKS_CLIENT_IDdanDATABRICKS_CLIENT_SECRET. - Untuk autentikasi pengguna ke mesin (U2M) OAuth (jika didukung): .
- Untuk autentikasi principal layanan Microsoft Entra ID (sebelumnya Azure Active Directory):
DATABRICKS_HOST,ARM_TENANT_ID,ARM_CLIENT_ID,ARM_CLIENT_SECRET, dan mungkinDATABRICKS_AZURE_RESOURCE_ID. - Untuk autentikasi Azure CLI:
DATABRICKS_HOST. - Untuk autentikasi identitas terkelola Azure (jika didukung):
DATABRICKS_HOST,ARM_USE_MSI,ARM_CLIENT_ID, dan mungkinDATABRICKS_AZURE_RESOURCE_ID.
Kemudian inisialisasi kelas DatabricksSession.
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Profil konfigurasi Databricks bernama DEFAULT
Untuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang cluster_id dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang ingin Anda gunakan.
Jika Anda telah mengatur DATABRICKS_CLUSTER_ID variabel lingkungan dengan ID kluster, Anda tidak perlu menentukan cluster_id.
Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
hostdantoken. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
host, ,client_iddanclient_secret. - Untuk autentikasi pengguna ke mesin (U2M) OAuth (jika didukung): .
- Untuk autentikasi principal layanan Microsoft Entra ID (sebelumnya Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secret, dan mungkinazure_workspace_resource_id. - Untuk autentikasi Azure CLI:
host. - Untuk autentikasi identitas terkelola Azure (jika didukung):
host,azure_use_msi,azure_client_id, dan mungkinazure_workspace_resource_id.
Beri nama profil DEFAULTkonfigurasi ini .
Kemudian inisialisasi kelas DatabricksSession.
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Mengonfigurasi koneksi ke komputasi tanpa server
Dukungan untuk Databricks Connect pada Python dan Scala dalam menghubungkan ke komputasi tanpa server. Untuk menggunakan fitur ini, persyaratan versi untuk menyambungkan ke 'serverless' harus dipenuhi. Lihat Persyaratan penggunaan Databricks Connect.
Penting
Fitur ini memiliki batasan berikut ini:
- Databricks Connect untuk dukungan Scala untuk komputasi tanpa server ada di Beta.
- Versi Databricks Connect dan versi Python atau Scala harus kompatibel. Lihat Versi Databricks Connect.
- Semua batasan Databricks Connect untuk Python atau Databricks Connect untuk Scala.
- Semua batasan komputasi tanpa server
Untuk Python, Anda dapat mengonfigurasi koneksi ke komputasi tanpa server di lingkungan lokal Anda:
Atur variabel
DATABRICKS_SERVERLESS_COMPUTE_IDlingkungan lokal keauto. Jika variabel lingkungan ini diatur, Databricks Connect mengabaikancluster_id.Di profil konfigurasi Databricks
[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Atau untuk Python atau Scala:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().getOrCreate()
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.serverless().getOrCreate()
Memeriksa koneksi ke Databricks
Untuk memvalidasi bahwa lingkungan Anda, kredensial default, dan koneksi ke komputasi disiapkan dengan benar untuk Databricks Connect, jalankan databricks-connect test perintah :
databricks-connect test
Perintah ini gagal dengan kode keluar bukan nol dan pesan kesalahan yang sesuai ketika mendeteksi ketidaksesuaian dalam penyiapan, seperti ketika versi Databricks Connect tidak kompatibel dengan versi komputasi tanpa server Databricks. Untuk informasi dukungan versi Databricks Connect, lihat Versi Databricks Connect.
Di Databricks Connect 14.3 ke atas, Anda juga dapat memvalidasi lingkungan Anda menggunakan validateSession():
DatabricksSession.builder.validateSession(True).getOrCreate()
Menonaktifkan Databricks Connect
Layanan Databricks Connect (dan Spark Connect yang mendasar) dapat dinonaktifkan pada kluster tertentu.
Untuk menonaktifkan layanan Databricks Connect, atur konfigurasi Spark berikut pada kluster.
spark.databricks.service.server.enabled false