Menginstal databricks Koneksi untuk Scala
Catatan
Artikel ini membahas Databricks Koneksi untuk Databricks Runtime 13.3 LTS ke atas.
Artikel ini menjelaskan cara menginstal Databricks Koneksi untuk Scala. Lihat Apa itu Databricks Koneksi?. Untuk versi Python artikel ini, lihat Menginstal Databricks Koneksi untuk Python.
Persyaratan
- Ruang kerja dan kluster Azure Databricks target Anda harus memenuhi persyaratan konfigurasi Kluster untuk Databricks Koneksi.
- Java Development Kit (JDK) diinstal pada komputer pengembangan Anda. Databricks merekomendasikan agar versi penginstalan JDK yang Anda gunakan cocok dengan versi JDK di kluster Azure Databricks Anda. Untuk menemukan versi JDK di kluster Anda, lihat bagian "Lingkungan sistem" dari catatan rilis Databricks Runtime untuk kluster Anda. Misalnya,
Zulu 8.70.0.23-CA-linux64
sesuai dengan JDK 8. Lihat Versi dan kompatibilitas catatan rilis Databricks Runtime. - Scala diinstal pada mesin pengembangan Anda. Databricks merekomendasikan agar versi penginstalan Scala yang Anda gunakan cocok dengan versi Scala di kluster Azure Databricks Anda. Untuk menemukan versi Scala di kluster Anda, lihat bagian "Lingkungan sistem" dari catatan rilis Databricks Runtime untuk kluster Anda. Lihat Versi dan kompatibilitas catatan rilis Databricks Runtime.
- Alat build Scala pada mesin pengembangan Anda, seperti
sbt
.
Menyiapkan klien
Setelah Anda memenuhi persyaratan untuk databricks Koneksi, selesaikan langkah-langkah berikut untuk menyiapkan klien Databricks Koneksi.
Langkah 1: Tambahkan referensi ke klien Databricks Koneksi
Dalam file build proyek Scala Anda seperti
build.sbt
untuksbt
,pom.xml
untuk Maven, ataubuild.gradle
untuk Gradle, tambahkan referensi berikut ke klien Databricks Koneksi:Sbt
libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Maven
<dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect</artifactId> <version>14.0.0</version> </dependency>
Gradle
implementation 'com.databricks.databricks-connect:14.0.0'
Ganti
14.0.0
dengan versi pustaka Databricks Koneksi yang cocok dengan versi Databricks Runtime pada kluster Anda. Anda dapat menemukan nomor versi pustaka Databricks Koneksi di repositori pusat Maven.
Langkah 2: Mengonfigurasi properti koneksi
Di bagian ini, Anda mengonfigurasi properti untuk membuat koneksi antara Databricks Koneksi dan kluster Azure Databricks jarak jauh Anda. Properti ini mencakup pengaturan untuk mengautentikasi databricks Koneksi dengan kluster Anda.
Untuk Databricks Koneksi untuk Databricks Runtime 13.3 LTS ke atas, untuk Scala, Databricks Koneksi menyertakan Databricks SDK untuk Java. SDK ini menerapkan standar autentikasi terpadu klien Databricks, pendekatan arsitektur dan terprogram yang terkonsolidasi dan konsisten untuk autentikasi. Pendekatan ini membuat pengaturan dan mengotomatiskan autentikasi dengan Azure Databricks lebih terpusat dan dapat diprediksi. Ini memungkinkan Anda mengonfigurasi autentikasi Azure Databricks sekali lalu menggunakan konfigurasi tersebut di beberapa alat dan SDK Azure Databricks tanpa perubahan konfigurasi autentikasi lebih lanjut.
Catatan
Autentikasi pengguna ke komputer (U2M) OAuth didukung pada Databricks SDK untuk Java 0.18.0 ke atas. Anda mungkin perlu memperbarui versi SDK Databricks SDK untuk Java ke 0.18.0 atau yang lebih baru untuk menggunakan autentikasi OAuth U2M. Lihat Mulai menggunakan Databricks SDK untuk Java.
Untuk autentikasi OAuth U2M, Anda harus menggunakan Databricks CLI untuk mengautentikasi sebelum menjalankan kode Scala Anda. Lihat Tutorial.
Autentikasi mesin-ke-mesin (M2M) OAuth didukung pada Databricks SDK untuk Java 0.17.0 ke atas. Anda mungkin perlu memperbarui versi SDK Databricks untuk Java yang diinstal proyek kode Anda ke 0.17.0 atau lebih tinggi untuk menggunakan autentikasi OAuth U2M. Lihat Mulai menggunakan Databricks SDK untuk Java.
Databricks SDK untuk Java belum menerapkan autentikasi identitas terkelola Azure.
Kumpulkan properti konfigurasi berikut.
- Nama instans ruang kerja Azure Databricks. Ini sama dengan nilai Nama Host Server untuk kluster Anda; lihat Mendapatkan detail koneksi untuk sumber daya komputasi Azure Databricks.
- ID kluster Anda. Anda bisa mendapatkan ID kluster dari URL. Lihat URL dan ID kluster.
- Properti lain yang diperlukan untuk jenis autentikasi Databricks yang didukung. Properti ini dijelaskan di seluruh bagian ini.
Konfigurasikan koneksi dalam kode Anda. Databricks Koneksi mencari properti konfigurasi dalam urutan berikut hingga menemukannya. Setelah menemukannya, ia berhenti mencari melalui opsi yang tersisa. Detail untuk setiap opsi muncul setelah tabel berikut:
Opsi properti konfigurasi Berlaku untuk 1. Metode DatabricksSession
kelasremote()
Autentikasi token akses pribadi Azure Databricks saja 2. Profil konfigurasi Azure Databricks Semua jenis autentikasi Azure Databricks 3. Variabel SPARK_REMOTE
lingkunganAutentikasi token akses pribadi Azure Databricks saja 4. Variabel DATABRICKS_CONFIG_PROFILE
lingkunganSemua jenis autentikasi Azure Databricks 5. Variabel lingkungan untuk setiap properti konfigurasi Semua jenis autentikasi Azure Databricks 6. Profil konfigurasi Azure Databricks bernama DEFAULT
Semua jenis autentikasi Azure Databricks Metode
DatabricksSession
kelasremote()
Untuk opsi ini, yang hanya berlaku untuk autentikasi token akses pribadi Azure Databricks, tentukan nama instans ruang kerja, token akses pribadi Azure Databricks, dan ID kluster.
Anda dapat menginisialisasi kelas dengan
DatabricksSession
beberapa cara, sebagai berikut:- Atur
host
bidang ,token
, danclusterId
diDatabricksSession.builder
. - Gunakan kelas Databricks SDK
Config
. - Tentukan profil konfigurasi Databricks bersama dengan
clusterId
bidang .
Databricks tidak menyarankan agar Anda secara langsung menentukan properti koneksi ini dalam kode Anda. Sebagai gantinya, Databricks merekomendasikan untuk mengonfigurasi properti melalui variabel lingkungan atau file konfigurasi, seperti yang dijelaskan di seluruh bagian ini. Contoh kode berikut mengasumsikan bahwa Anda menyediakan beberapa implementasi fungsi yang diusulkan
retrieve*
sendiri 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:
// 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() // 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() // 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()
- Atur
Profil konfigurasi Azure 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 didukung yang ingin Anda gunakan.Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
host
dantoken
. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
host
, ,client_id
danclient_secret
. - Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung):
host
. - Untuk autentikasi
host
perwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , ,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
DatabricksConfig
kelas .Anda dapat menentukan
cluster_id
dengan beberapa cara, sebagai berikut:- Sertakan
cluster_id
bidang di profil konfigurasi Anda, lalu cukup tentukan nama profil konfigurasi. - Tentukan nama profil konfigurasi bersama dengan
clusterId
bidang .
Jika Anda telah mengatur
DATABRICKS_CLUSTER_ID
variabel lingkungan dengan ID kluster, Anda tidak perlu menentukancluster_id
bidang atauclusterId
.Kode untuk masing-masing pendekatan ini adalah sebagai berikut:
// 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() // Specify the configuration profile name along with the clusterId field. // In this example, retrieveClusterId() assumes some custom implementation that // you provide to get the cluster ID from the user or from some other // configuration store: 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()
- Untuk autentikasi token akses pribadi Azure Databricks:
Variabel
SPARK_REMOTE
lingkunganUntuk opsi ini, yang hanya berlaku untuk autentikasi token akses pribadi Azure Databricks, atur
SPARK_REMOTE
variabel lingkungan ke string berikut, mengganti tempat penampung dengan nilai yang sesuai.sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Kemudian inisialisasi
DatabricksSession
kelas sebagai berikut:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.
Variabel
DATABRICKS_CONFIG_PROFILE
lingkunganUntuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang
cluster_id
dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang didukung yang ingin Anda gunakan.Jika Anda telah mengatur
DATABRICKS_CLUSTER_ID
variabel lingkungan dengan ID kluster, Anda tidak perlu menentukancluster_id
.Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
host
dantoken
. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
host
, ,client_id
danclient_secret
. - Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung):
host
. - Untuk autentikasi
host
perwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , ,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 inisialisasiDatabricksSession
kelas sebagai berikut:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.
- Untuk autentikasi token akses pribadi Azure Databricks:
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 didukung yang ingin Anda gunakan.Variabel lingkungan yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
DATABRICKS_HOST
danDATABRICKS_TOKEN
. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
DATABRICKS_HOST
, ,DATABRICKS_CLIENT_ID
danDATABRICKS_CLIENT_SECRET
. - Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung):
DATABRICKS_HOST
. - Untuk autentikasi
DATABRICKS_HOST
perwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , ,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
DatabricksSession
kelas sebagai berikut:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.
- Untuk autentikasi token akses pribadi Azure Databricks:
Profil konfigurasi Azure 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 didukung yang ingin Anda gunakan.Jika Anda telah mengatur
DATABRICKS_CLUSTER_ID
variabel lingkungan dengan ID kluster, Anda tidak perlu menentukancluster_id
.Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:
- Untuk autentikasi token akses pribadi Azure Databricks:
host
dantoken
. - Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung):
host
, ,client_id
danclient_secret
. - Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung):
host
. - Untuk autentikasi
host
perwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , ,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
DEFAULT
konfigurasi ini .Kemudian inisialisasi
DatabricksSession
kelas sebagai berikut:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Untuk autentikasi token akses pribadi Azure Databricks: