Databricks CLI

Databricks kommandoradsgränssnitt (CLI) är ett lättanvänt gränssnitt till Azure Databricks-plattformen. Projektet med öppen källkod finns på GitHub. CLI bygger på Databricks REST API 2.0 och är organiserat i kommandogrupper baserat på API:er för klusterprinciper 2.0, kluster-API 2.0,DBFS API 2.0, grupper API 2.00,API för instanspooler 2.0,jobb-API 2.1,biblioteks-API 2.0, lagringsplatsens API 2.0,hemlighets-API 2.0,token-API 2.0och arbetsyte-API 2.0 via , kommandogrupperna , , , , , , och .

Viktigt

Denna CLI är under aktiv utveckling och släpps som en experimentell klient. Det innebär att gränssnitt fortfarande kan komma att ändras.

Konfigurera CLI

Det här avsnittet beskriver krav för CLI och hur du installerar och konfigurerar din miljö för att köra CLI.

Krav

  • Python 3 – 3.6 och senare

  • Python 2 – 2.7.9 och senare

    Viktigt

    I macOS implementerar inte standardinstallationen av Python 2 TLSv1_2-protokollet och körning av CLI med den här Python-installationen resulterar i felet: AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2' . Använd Homebrew för att installera en version av Python som har .

Begränsningar

Det går inte att använda Databricks CLI med brandväggsaktiverade lagringscontainrar. Databricks rekommenderar att du använder Databricks Connect eller az storage.

Installera CLI

Kör pip install databricks-cli med rätt version av pip för din Python-installation.

Uppdatera CLI

Kör pip install databricks-cli --upgrade med rätt version av pip för din Python-installation.

Om du vill visa en lista över den version av CLI som är installerad för närvarande kör databricks --version du (eller databricks -v ).

Konfigurera autentisering

Innan du kan köra CLI-kommandon måste du konfigurera autentisering. För att autentisera till CLI kan du använda en personlig Databricks-åtkomsttoken eller en Azure Active Directory-token (Azure AD).

Konfigurera autentisering med hjälp av en Azure AD-token

Om du vill konfigurera CLI med hjälp av en Azure AD-token genererar du Azure AD-token och lagrar den i miljövariabeln .

Unix, linux, macos
export DATABRICKS_AAD_TOKEN=<Azure-AD-token>

Eller så kan du använda jq:

export DATABRICKS_AAD_TOKEN=$(az account get-access-token | jq .accessToken --raw-output)
Windows
setx DATABRICKS_AAD_TOKEN "<Azure-AD-token>" /M

Du kan också använda Windows PowerShell och jq:

$databricks_aad_token = az account get-access-token | jq .accessToken --raw-output
[System.Environment]::SetEnvironmentVariable('DATABRICKS_AAD_TOKEN', $databricks_aad_token, [System.EnvironmentVariableTarget]::Machine)`

Kör databricks configure --aad-token. Kommandot utfärdar prompten:

Databricks Host (should begin with https://):

Ange URL:en per arbetsyta med formatet https://adb-<workspace-id>.<random-number>.azuredatabricks.net . Information om hur du hämtar URL:en per arbetsyta finns i URL per arbetsyta.

När du har slutfört prompten lagras dina autentiseringsuppgifter i filen ~/.databrickscfg på Unix, Linux eller macOS eller %USERPROFILE%\.databrickscfg på Windows. Filen innehåller en standardprofilpost:

[DEFAULT]
host = <workspace-URL>
token = <Azure-AD-token>

Konfigurera autentisering med hjälp av en personlig Databricks-åtkomsttoken

Om du vill konfigurera CLI att använda en personlig åtkomsttoken kör du databricks configure --token . Kommandot börjar med att utfärda prompten:

Databricks Host (should begin with https://):

Ange URL:en per arbetsyta med formatet https://adb-<workspace-id>.<random-number>.azuredatabricks.net . Information om hur du hämtar URL:en per arbetsyta finns i URL per arbetsyta.

Kommandot fortsätter genom att utfärda prompten för att ange din personliga åtkomsttoken:

Token:

När du har slutfört anvisningarna lagras dina autentiseringsuppgifter i filen på ~/.databrickscfg Unix, Linux eller macOS eller %USERPROFILE%\.databrickscfg på Windows. Filen innehåller en standardprofilpost:

[DEFAULT]
host = <workspace-URL>
token = <personal-access-token>

För CLI 0.8.1 och högre kan du ändra sökvägen till filen genom att ange miljövariabeln DATABRICKS_CONFIG_FILE .

Unix, linux, macos

export DATABRICKS_CONFIG_FILE=<path-to-file>

Windows

setx DATABRICKS_CONFIG_FILE "<path-to-file>" /M

Viktigt

Eftersom CLI är byggt ovanpå REST API har din autentiseringskonfiguration i .netrc-filen företräde framför konfigurationen i .

CLI 0.8.0 och senare har stöd för följande miljövariabler:

  • DATABRICKS_HOST
  • DATABRICKS_TOKEN
  • DATABRICKS_CONFIG_PROFILE

En miljövariabelinställning har företräde framför inställningen i konfigurationsfilen.

Anslutningsprofiler

Databricks CLI-konfiguration stöder flera anslutningsprofiler. Samma installation av Databricks CLI kan användas för att skapa API-anrop på flera Azure Databricks-arbetsytor.

Om du vill lägga till en anslutningsprofil anger du ett unikt namn för profilen:

databricks configure [--token | --aad-token] --profile <profile-name>

Filen .databrickscfg innehåller en korsonderingsprofilpost:

[<profile-name>]
host = <workspace-URL>
token = <token>

För att använda anslutningsprofilen:

databricks <group> <command> --profile <profile-name>

Om --profile <profile-name> inte anges används standardprofilen. Om en standardprofil inte hittas uppmanas du att konfigurera CLI med en standardprofil.

Alias för kommandogrupper

Ibland kan det vara opraktiskt att sätta ett prefix på varje CLI-anrop i form av namnet på en kommandogrupp, som databricks workspace ls. Om du vill göra CLI:n enklare att använda kan du skapa alias för kommandogrupper för kortare kommandon. Om du till exempel vill databricks workspace ls förkorta till dw ls i Bourne again-gränssnittet kan du lägga alias dw="databricks workspace" till i lämplig bash-profil. Den här filen finns normalt på ~/.bash_profile.

Tips

Azure Databricks redan alias databricks fs till dbfs ; och är databricks fs lsdbfs ls likvärdiga.

Använda CLI

Det här avsnittet visar hur du kan få hjälp med CLI, parsa CLI-utdata och anropa kommandon i varje kommandogrupp.

Visa hjälp för CLI-kommandogrupper

Du listar underkommandona för alla kommandogrupper genom att köra databricks <group> --help (eller databricks <group> -h ). Du listar t.ex. DBFS CLI-underkommandona genom att köra databricks fs -h.

Visa CLI-underkommandohjälp

Du listar hjälpen för ett underkommando genom att köra databricks <group> <subcommand> --help (eller databricks <group> <subcommand> -h ). Du kan till exempel visa hjälpen för dbfs-kopieringsfilerna underkommandot genom att köra databricks fs cp -h .

Använda jq för att parsa CLI-utdata

Vissa Databricks CLI-kommandon matar ut JSON-svaret från API-slutpunkten. Ibland kan det vara användbart att parsa ut delar av JSON för att ansluta till andra kommandon. Om du till exempel vill kopiera en jobbdefinition måste du ta fältet för ett kommando och settings använda det som ett argument till databricks jobs getdatabricks jobs create kommandot. I de här fallen rekommenderar vi att du använder jq-verktyget.

Följande kommando skriver till exempel ut jobbinställningarna med ID:t 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
}

Ett annat exempel är att följande kommando skriver ut namn och ID:er för alla tillgängliga kluster på arbetsytan:

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"
  }
]

Du kan installera jq till exempel på macOS med Homebrew med eller på brew install jq Windows chocolatey med choco install jq . Mer information om jq finns i jq.

JSON-strängparametrar

Strängparametrar hanteras på olika sätt beroende på operativsystemet:

Unix, linux, macos

Du måste omge JSON-strängparametrar med enkla citattecken. Exempel:

databricks jobs run-now --job-id 9 --jar-params '["20180505", "alantest"]'

Windows

Du måste omge JSON-strängparametrar med dubbla citattecken, och citattecken i strängen måste föregås av \ . Exempel:

databricks jobs run-now --job-id 9 --jar-params "[\"20180505\", \"alantest\"]"

Felsökning

Följande avsnitt innehåller tips för felsökning av vanliga problem med Databricks CLI.

Det går inte att använda EOF databricks configure med

För Databricks CLI 0.12.0 och högre fungerar inte sekvensen i slutet av filen ( ) i ett skript för att skicka EOFdatabricks configure parametrar till kommandot. Följande skript gör till exempel att Databricks CLI ignorerar parametrarna och inget felmeddelande visas:

# Do not do this.
databricksUrl=<per-workspace-url>
databricksToken=<personal-access-token-or-Azure-AD-token>

databricks configure --token << EOF
$databricksUrl
$databricksToken
EOF

Åtgärda problemet genom att göra något av följande:

  • Använd något av de andra programmatiska konfigurationsalternativen enligt beskrivningen i Konfigurera autentisering.
  • Lägg till värdena host och manuellt i filen enligt token.databrickscfg beskrivningen i Konfigurera host.
  • Nedgradera installationen av Databricks CLI till 0.11.0 eller lägre och kör skriptet igen.

CLI-kommandon