Databricks CLI
Antarmuka baris perintah Databricks (CLI) menyediakan antarmuka yang mudah digunakan ke platform Azure Databricks. Proyek sumber terbuka ini diselenggarakan pada GitHub. CLI dibangun di atas Databricks REST API 2.0 dan diatur ke dalam grup perintah berdasarkan Cluster Policies API 2.0, Clusters API 2.0, DBFS API 2.0, Groups API 2.0, Instance Pools API 2.0, Jobs API 2.1, Libraries API 2.0, Repos API 2.0, Secrets API 2.0, Token API 2.0, dan Workspace API 2.0 melalui cluster-policiesclusters, fsgroups, instance-poolsjobs, runslibraries, repossecrets, tokensworkspace dan , , , , , dan kelompok komando, masing-masing.
Penting
CLI ini sedang dalam pengembangan aktif dan dirilis sebagai klien Eksperimental. Ini berarti bahwa antarmuka masih dapat berubah.
Menyiapkan ASDK
Bagian ini mencantumkan persyaratan CLI dan menjelaskan cara menginstal dan mengonfigurasi lingkungan Anda untuk menjalankan CLI.
Persyaratan
Python 3 - 3.6 ke atas
Python 2 - 2.7.9 ke atas
Penting
Di macOS, instalasi Python 2 default tidak menerapkan protokol TLSv1_2 dan menjalankan CLI dengan instalasi Python ini menghasilkan kesalahan:
AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'. Gunakan Homebrew untuk menginstal versi Python yang memilikissl.PROTOCOL_TLSv1_2.
Batasan
Menggunakan Cli Databricks dengan kontainer penyimpanan yang diaktifkan firewall tidak didukung. Databricks merekomendasikan Anda menggunakan Databricks Koneksi atau penyimpanan az.
Pasang CLI
Jalankan pip install databricks-cli menggunakan versi pip yang sesuai untuk instalasi Python Anda.
Perbarui CLI
Jalankan pip install databricks-cli --upgrade menggunakan versi pip yang sesuai untuk instalasi Python Anda.
Untuk mencantumkan versi CLI yang saat ini diinstal, jalankan databricks --version (atau databricks -v).
Siapkan autentikasi
Sebelum Anda dapat menjalankan perintah CLI, Anda harus menyiapkan autentikasi. Untuk mengautentikasi ke CLI, Anda dapat menggunakan token akses pribadi Databricks atau token Azure Active Directory (Azure AD).
Menyiapkan autentikasi menggunakan token Azure Active Directory
Untuk mengonfigurasi CLI menggunakan token Azure AD, buat token Azure Active Directory dan simpan di variabel lingkunganDATABRICKS_AAD_TOKEN.
Unix, linux, macos
export DATABRICKS_AAD_TOKEN=<Azure-AD-token>
Atau, menggunakan jq:
export DATABRICKS_AAD_TOKEN=$(az account get-access-token --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d | jq .accessToken --raw-output)
Windows
setx DATABRICKS_AAD_TOKEN "<Azure-AD-token>" /M
Atau, menggunakan Windows PowerShell dan jq:
$databricks_aad_token = az account get-access-token --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d | jq .accessToken --raw-output
[System.Environment]::SetEnvironmentVariable('DATABRICKS_AAD_TOKEN', $databricks_aad_token, [System.EnvironmentVariableTarget]::Machine)`
Jalankan databricks configure --aad-token. Perintah mengeluarkan prompt:
Databricks Host (should begin with https://):
Masukkan URL per ruang kerja Anda, dengan format https://adb-<workspace-id>.<random-number>.azuredatabricks.net. Untuk mendapatkan URL per ruang kerja, lihat URL Per ruang kerja.
Setelah Anda menyelesaikan prompt, informasi masuk akses Anda disimpan dalam file ~/.databrickscfg di Unix, Linux, atau macOS atau %USERPROFILE%\.databrickscfg di Windows. File berisi entri profil default:
[DEFAULT]
host = <workspace-URL>
token = <Azure-AD-token>
Siapkan autentikasi dengan menggunakan token akses pribadi Azure Databricks
Untuk mengonfigurasi CLI menggunakan token akses pribadi, jalankan databricks configure --token. Perintah dimulai dengan mengeluarkan prompt:
Databricks Host (should begin with https://):
Masukkan URL per ruang kerja Anda, dengan format https://adb-<workspace-id>.<random-number>.azuredatabricks.net. Untuk mendapatkan URL per ruang kerja, lihat URL Per ruang kerja.
Perintah berlanjut dengan mengeluarkan prompt untuk memasukkan token akses pribadi Anda:
Token:
Setelah Anda menyelesaikan prompt, informasi masuk akses Anda disimpan dalam file ~/.databrickscfg di Unix, Linux, atau macOS atau %USERPROFILE%\.databrickscfg di Windows. File berisi entri profil default:
[DEFAULT]
host = <workspace-URL>
token = <personal-access-token>
Untuk CLI 0.8.1 ke atas, Anda dapat mengubah jalur file ini dengan mengatur variabel DATABRICKS_CONFIG_FILElingkungan.
Unix, linux, macos
export DATABRICKS_CONFIG_FILE=<path-to-file>
Windows
setx DATABRICKS_CONFIG_FILE "<path-to-file>" /M
Penting
CLI tidak berfungsi melalui file .netrc. Anda dapat memiliki file .netrc di lingkungan Anda untuk tujuan lain, tetapi CLI tidak akan menggunakan file .netrc tersebut.
CLI 0.8.0 ke atas mendukung variabel lingkungan berikut:
DATABRICKS_HOSTDATABRICKS_TOKEN
Pengaturan variabel lingkungan lebih diutamakan daripada pengaturan dalam file konfigurasi.
Profil koneksi
Konfigurasi Cli Databricks mendukung beberapa profil koneksi. Instalasi Databricks CLI yang sama dapat digunakan untuk melakukan panggilan API di beberapa ruang kerja Azure Databricks.
Untuk menambahkan profil koneksi, tentukan nama unik untuk profil:
databricks configure [--token | --aad-token] --profile <profile-name>
.databrickscfgFile berisi entri profil yang berkorelasi:
[<profile-name>]
host = <workspace-URL>
token = <token>
Untuk menggunakan profil koneksi:
databricks <group> <command> --profile <profile-name>
Jika --profile <profile-name> tidak ditentukan, profil default digunakan. Jika profil default tidak ditemukan, Anda akan diminta untuk mengonfigurasi CLI dengan profil default.
Grup perintah alias
Terkadang tidak nyaman untuk memulai setiap pemanggilan CLI dengan nama grup perintah, misalnya databricks workspace ls. Untuk membuat CLI lebih mudah digunakan, Anda dapat alias grup perintah ke perintah yang lebih pendek.
Misalnya, untuk mempersingkat databricks workspace ls ke dw ls dalam shell Bourne again, Anda dapat menambahkan alias dw="databricks workspace" ke profil bash yang sesuai. Biasanya, file ini terletak di ~/.bash_profile.
Tip
Azure Databricks sudah alias databricks fs ke dbfs; databricks fs ls dan dbfs ls setara.
Menggunakan CLI
Bagian ini menunjukkan kepada Anda cara mendapatkan bantuan CLI, mengurai output CLI, dan memanggil perintah di setiap grup perintah.
Bantuan grup perintah Display CLI
Anda mencantumkan subkommand untuk grup perintah apa pun dengan menjalankan databricks <group> --help (atau databricks <group> -h). Misalnya, Anda mencantumkan subkomman DBFS CLI dengan menjalankan databricks fs -h.
Tampilkan bantuan subkommand CLI
Anda mencantumkan bantuan untuk subkommand dengan menjalankan databricks <group> <subcommand> --help (atau databricks <group> <subcommand> -h). Misalnya, Anda mencantumkan bantuan untuk subkomman file salinan DBFS dengan menjalankan databricks fs cp -h.
Gunakan jq untuk mengurai output CLI
Beberapa perintah Databricks CLI mengeluarkan respons JSON dari titik akhir API. Terkadang berguna untuk mengurai bagian JSON ke dalam perintah lain. Misalnya, untuk menyalin definisi pekerjaan, Anda harus mengambil settings bidang databricks jobs get perintah dan menggunakannya sebagai argumen ke databricks jobs create perintah. Dalam kasus ini, kami sarankan Anda untuk menggunakan utilitas jq.
Misalnya, perintah berikut mencetak pengaturan pekerjaan dengan ID 233.
databricks jobs list --output JSON | jq '.jobs[] | select(.job_id == 233) | .settings'
{
"name": "Quickstart",
"new_cluster": {
"spark_version": "7.5.x-scala2.12",
"spark_env_vars": {
"PYSPARK_PYTHON": "/databricks/python3/bin/python3"
},
"num_workers": 8,
...
},
"email_notifications": {},
"timeout_seconds": 0,
"notebook_task": {
"notebook_path": "/Quickstart"
},
"max_concurrent_runs": 1
}
Sebagai contoh lain, perintah berikut mencetak nama dan ID dari semua kluster yang tersedia di ruang kerja:
databricks clusters list --output JSON | jq '[ .clusters[] | { name: .cluster_name, id: .cluster_id } ]'
[
{
"name": "My Cluster 1",
"id": "1234-567890-grip123"
},
{
"name": "My Cluster 2",
"id": "2345-678901-patch234"
}
]
Anda dapat menginstal jq misalnya di macOS menggunakan Homebrew dengan brew install jq atau di Windows menggunakan Chocolatey dengan choco install jq. Untuk informasi lebih lanjut jqtentang, lihat Manual jq.
Parameter untai JavaScript Object Notation
Parameter string ditangani secara berbeda tergantung pada sistem operasi Anda:
Unix, linux, macos
Anda harus melampirkan parameter string JSON dalam satu tanda kutip. Contohnya:
databricks jobs run-now --job-id 9 --jar-params '["20180505", "alantest"]'
Windows
Anda harus melampirkan parameter string JSON dalam tanda kutip ganda, dan karakter kutipan di dalam string harus didahului oleh \. Contohnya:
databricks jobs run-now --job-id 9 --jar-params "[\"20180505\", \"alantest\"]"
Pemecahan Masalah
Bagian berikut memberikan tips untuk memecahkan masalah umum dengan Cli Databricks.
Menggunakan EOF dengan databricks configure tidak berfungsi
Untuk Databricks CLI 0.12.0 ke atas, menggunakan urutan akhir file (EOF) dalam skrip untuk meneruskan parameter ke databricks configure perintah tidak berfungsi. Misalnya, skrip berikut menyebabkan Databricks CLI mengabaikan parameter, dan tidak ada pesan kesalahan yang dilemparkan:
# Do not do this.
databricksUrl=<per-workspace-url>
databricksToken=<personal-access-token-or-Azure-AD-token>
databricks configure --token << EOF
$databricksUrl
$databricksToken
EOF
Untuk meperbaiki masalah ini, lakukan salah satu langkah berikut:
- Gunakan salah satu opsi konfigurasi terprogram lainnya seperti yang dijelaskan dalam Siapkan autentikasi.
- Tambahkan
hostdantokennilai secara manual ke file seperti yang.databrickscfgdijelaskan dalam Siapkan autentikasi. - Turun tingkat instalasi Cli Databricks Anda ke 0.11.0 atau di bawah, dan jalankan skrip Anda lagi.