Referens för Databricks Utilities (dbutils
)
Den här artikeln innehåller referens för Databricks Utilities (dbutils
). Verktygen tillhandahåller kommandon som gör att du kan arbeta med din Databricks-miljö från notebook-filer. Du kan till exempel hantera filer och objektlagring och arbeta med hemligheter.
dbutils
finns i Notebook-filer för Python, R och Scala.
Kommentar
dbutils
stöder endast beräkningsmiljöer som använder DBFS.
-verktygsmoduler
I följande tabell visas modulerna Databricks Utilities som du kan hämta med hjälp av dbutils.help()
.
Modul | Beskrivning |
---|---|
data | Verktyg för att förstå och interagera med datamängder (EXPERIMENTAL) |
fs | Verktyg för åtkomst till Databricks-filsystemet (DBFS) |
jobb | Verktyg för att utnyttja jobbfunktioner |
bibliotek | Föråldrad. Verktyg för att hantera bibliotek med sessionsomfattning |
anteckningsbok | Verktyg för att hantera kontrollflöde för anteckningsböcker (EXPERIMENTAL) |
hemligheter | Verktyg för att utnyttja hemligheter i notebook-filer |
widgets | Verktyg för parameterisering av notebook-filer. |
api | Verktyg för att hantera programversioner |
Kommandohjälp för
Om du vill lista kommandon för en verktygsmodul tillsammans med en kort beskrivning av varje kommando lägger du till .help()
efter namnet på verktygsmodulen. I följande exempel visas tillgängliga kommandon för notebook-verktyget:
dbutils.notebook.help()
The notebook module.
exit(value: String): void -> This method lets you exit a notebook with a value
run(path: String, timeoutSeconds: int, arguments: Map): String -> This method runs a notebook and returns its exit value
Kör dbutils.<utility-name>.help("<command-name>")
för att mata ut hjälp för ett kommando. I följande exempel visas hjälp för kopieringskommandot för filsystemverktyg, dbutils.fs.cp
:
dbutils.fs.help("cp")
/**
* Copies a file or directory, possibly across FileSystems.
*
* Example: cp("/mnt/my-folder/a", "dbfs:/a/b")
*
* @param from FileSystem URI of the source file or directory
* @param to FileSystem URI of the destination file or directory
* @param recurse if true, all files and directories will be recursively copied
* @return true if all files were successfully copied
*/
cp(from: java.lang.String, to: java.lang.String, recurse: boolean = false): boolean
Dataverktyg (dbutils.data)
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Kommentar
Tillgänglig i Databricks Runtime 9.0 och senare.
Med dataverktyget kan du förstå och interagera med datauppsättningar.
I följande tabell visas de tillgängliga kommandona för det här verktyget, som du kan hämta med hjälp av dbutils.data.help()
.
Befallning | Beskrivning |
---|---|
sammanfatta | Sammanfatta en Spark DataFrame och visualisera statistiken för att få snabba insikter |
summarize-kommandot (dbutils.data.summarize)
Kommentar
Den här funktionen finns som allmänt tillgänglig förhandsversion.
summarize(df: Object, precise: boolean): void
Beräknar och visar sammanfattningsstatistik för en Apache Spark DataFrame eller Pandas DataFrame. Det här kommandot är tillgängligt för Python, Scala och R.
Viktigt!
Det här kommandot analyserar det fullständiga innehållet i DataFrame. Det kan vara mycket dyrt att köra det här kommandot för mycket stora DataFrames.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.data.help("summarize")
I Databricks Runtime 10.4 LTS och senare kan du använda den extra precise
parametern för att justera precisionen för den beräknade statistiken.
- När
precise
är inställt på false (standard) innehåller vissa returnerade statistik uppskattningar för att minska körningstiden.- Antalet distinkta värden för kategoriska kolumner kan ha ~5% relativa fel för kolumner med hög kardinalitet.
- Antalet frekventa värden kan ha ett fel på upp till 0,01% när antalet distinkta värden är större än 10000.
- Histogram och percentiluppskattningar kan ha ett fel på upp till 0,01 % i förhållande till det totala antalet rader.
- När
precise
är inställt på sant beräknas statistiken med högre precision. All statistik förutom histogram och percentiler för numeriska kolumner är nu exakta.- Histogram och percentiluppskattningar kan ha ett fel på upp till 0,0001 % i förhållande till det totala antalet rader.
Knappbeskrivningen överst i datasammanfattningens utdata anger läget för den aktuella körningen.
Exempel
I det här exemplet visas sammanfattningsstatistik för en Apache Spark DataFrame med approximationer aktiverade som standard. Om du vill se resultatet kör du det här kommandot i en notebook-fil. Det här exemplet baseras på exempeldatauppsättningar.
Python
df = spark.read.format('csv').load(
'/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv',
header=True,
inferSchema=True
)
dbutils.data.summarize(df)
R
df <- read.df("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", source = "csv", header="true", inferSchema = "true")
dbutils.data.summarize(df)
Scala
val df = spark.read.format("csv")
.option("inferSchema", "true")
.option("header", "true")
.load("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv")
dbutils.data.summarize(df)
Visualiseringen använder SI-notation för att kortfattat återge numeriska värden som är mindre än 0,01 eller större än 1 0000. Till exempel återges det numeriska värdet 1.25e-15
som 1.25f
. Ett undantag: visualiseringen använder "B
" för (1.0e9
) i stället för "G
".
Filsystemverktyg (dbutils.fs)
Med filsystemverktyget kan du komma åt Vad är DBFS?, vilket gör det enklare att använda Azure Databricks som ett filsystem.
Varning
Python-implementeringen av alla dbutils.fs
metoder använder snake_case
i stället camelCase
för nyckelordsformatering.
Visar till exempel dbutils.fs.help()
alternativet extraConfigs
för dbutils.fs.mount()
. Men i Python använder du nyckelordet extra_configs
.
I följande tabell visas de tillgängliga kommandona för det här verktyget, som du kan hämta med hjälp av dbutils.fs.help()
.
Befallning | Beskrivning |
---|---|
cp | Kopierar en fil eller katalog, eventuellt över FileSystems |
huvud | Returnerar upp till de första "maxBytes"-byteen för den angivna filen som en strängkodad i UTF-8 |
ls | Visar en lista över innehållet i en katalog |
mkdirs | Skapar den angivna katalogen om den inte finns och skapar även nödvändiga överordnade kataloger |
montera | Monterar den angivna källkatalogen i DBFS vid den angivna monteringspunkten |
monterar | Visar information om vad som monteras i DBFS |
mv | Flyttar en fil eller katalog, eventuellt över FileSystems |
sätta | Skriver ut den angivna strängen till en fil, kodad i UTF-8 |
refreshMounts | Tvingar alla datorer i det här klustret att uppdatera sin monteringscache så att de får den senaste informationen |
rm | Tar bort en fil eller katalog |
demontera | Tar bort en DBFS-monteringspunkt |
updateMount | Liknar mount(), men uppdaterar en befintlig monteringspunkt i stället för att skapa en ny |
Tips
I notebook-filer kan du använda det %fs
magiska kommandot för att komma åt DBFS. Är till exempel %fs ls /Volumes/main/default/my-volume/
samma som dbutils.fs.ls("/Volumes/main/default/my-volume/")
. Se magiska kommandon.
cp-kommando (dbutils.fs.cp)
cp(from: String, to: String, recurse: boolean = false): boolean
Kopierar en fil eller katalog, eventuellt över filsystem.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("cp")
Exempel
I det här exemplet kopieras filen med namnet data.csv
från /Volumes/main/default/my-volume/
till new-data.csv
i samma volym.
Python
dbutils.fs.cp("/Volumes/main/default/my-volume/data.csv", "/Volumes/main/default/my-volume/new-data.csv")
# Out[4]: True
R
dbutils.fs.cp("/Volumes/main/default/my-volume/data.csv", "/Volumes/main/default/my-volume/new-data.csv")
# [1] TRUE
Scala
dbutils.fs.cp("/Volumes/main/default/my-volume/data.csv", "/Volumes/main/default/my-volume/new-data.csv")
// res3: Boolean = true
huvudkommando (dbutils.fs.head)
head(file: String, maxBytes: int = 65536): String
Returnerar upp till det angivna maximala antalet byte i den angivna filen. Byte returneras som en UTF-8-kodad sträng.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("head")
Exempel
I det här exemplet visas de första 25 byteen av filen data.csv
som finns i /Volumes/main/default/my-volume/
.
Python
dbutils.fs.head("/Volumes/main/default/my-volume/data.csv", 25)
# [Truncated to first 25 bytes]
# Out[12]: 'Year,First Name,County,Se'
R
dbutils.fs.head("/Volumes/main/default/my-volume/data.csv", 25)
# [1] "Year,First Name,County,Se"
Scala
dbutils.fs.head("/Volumes/main/default/my-volume/data.csv", 25)
// [Truncated to first 25 bytes]
// res4: String =
// "Year,First Name,County,Se"
ls-kommandot (dbutils.fs.ls)
ls(dir: String): Seq
Visar en lista över innehållet i en katalog.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("ls")
Exempel
Det här exemplet visar information om innehållet i /Volumes/main/default/my-volume/
. Fältet modificationTime
är tillgängligt i Databricks Runtime 10.4 LTS och senare. I R modificationTime
returneras som en sträng.
Python
dbutils.fs.ls("/Volumes/main/default/my-volume/")
# Out[13]: [FileInfo(path='dbfs:/Volumes/main/default/my-volume/data.csv', name='data.csv', size=2258987, modificationTime=1711357839000)]
R
dbutils.fs.ls("/Volumes/main/default/my-volume/")
# For prettier results from dbutils.fs.ls(<dir>), please use `%fs ls <dir>`
# [[1]]
# [[1]]$path
# [1] "/Volumes/main/default/my-volume/data.csv"
# [[1]]$name
# [1] "data.csv"
# [[1]]$size
# [1] 2258987
# [[1]]$isDir
# [1] FALSE
# [[1]]$isFile
# [1] TRUE
# [[1]]$modificationTime
# [1] "1711357839000"
Scala
dbutils.fs.ls("/tmp")
// res6: Seq[com.databricks.backend.daemon.dbutils.FileInfo] = WrappedArray(FileInfo(/Volumes/main/default/my-volume/data.csv, 2258987, 1711357839000))
kommandot mkdirs (dbutils.fs.mkdirs)
mkdirs(dir: String): boolean
Skapar den angivna katalogen om den inte finns. Skapar även alla nödvändiga överordnade kataloger.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("mkdirs")
Exempel
Det här exemplet skapar katalogen my-data
i /Volumes/main/default/my-volume/
.
Python
dbutils.fs.mkdirs("/Volumes/main/default/my-volume/my-data")
# Out[15]: True
R
dbutils.fs.mkdirs("/Volumes/main/default/my-volume/my-data")
# [1] TRUE
Scala
dbutils.fs.mkdirs("/Volumes/main/default/my-volume/my-data")
// res7: Boolean = true
monteringskommando (dbutils.fs.mount)
mount(source: String, mountPoint: String, encryptionType: String = "",
owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean
Monterar den angivna källkatalogen i DBFS vid den angivna monteringspunkten.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("mount")
Exempel
Python
dbutils.fs.mount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
mount_point = "/mnt/<mount-name>",
extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})
Scala
dbutils.fs.mount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>",
mountPoint = "/mnt/<mount-name>",
extraConfigs = Map("<conf-key>" -> dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")))
Ytterligare kodexempel finns i Ansluta till Azure Data Lake Storage Gen2 och Blob Storage.
mounts command (dbutils.fs.mounts)
mounts: Seq
Visar information om vad som för närvarande är monterat i DBFS.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("mounts")
Exempel
Varning
Anropa dbutils.fs.refreshMounts()
alla andra kluster som körs för att sprida den nya monteringen. Se refreshMounts-kommandot (dbutils.fs.refreshMounts).
Python
dbutils.fs.mounts()
Scala
dbutils.fs.mounts()
Ytterligare kodexempel finns i Ansluta till Azure Data Lake Storage Gen2 och Blob Storage.
mv-kommando (dbutils.fs.mv)
mv(from: String, to: String, recurse: boolean = false): boolean
Flyttar en fil eller katalog, eventuellt mellan filsystem. En flytt är en kopia följt av en borttagning, även för flyttningar i filsystem.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("mv")
Exempel
Det här exemplet flyttar filen rows.csv
från /Volumes/main/default/my-volume/
till /Volumes/main/default/my-volume/my-data/
.
Python
dbutils.fs.mv("/Volumes/main/default/my-volume/rows.csv", "/Volumes/main/default/my-volume/my-data/")
# Out[2]: True
R
dbutils.fs.mv("/Volumes/main/default/my-volume/rows.csv", "/Volumes/main/default/my-volume/my-data/")
# [1] TRUE
Scala
dbutils.fs.mv("/Volumes/main/default/my-volume/rows.csv", "/Volumes/main/default/my-volume/my-data/")
// res1: Boolean = true
put command (dbutils.fs.put)
put(file: String, contents: String, overwrite: boolean = false): boolean
Skriver den angivna strängen till en fil. Strängen är UTF-8-kodad.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("put")
Exempel
Det här exemplet skriver strängen Hello, Databricks!
till en fil med namnet hello.txt
i /Volumes/main/default/my-volume/
. Om filen finns skrivs den över.
Python
dbutils.fs.put("/Volumes/main/default/my-volume/hello.txt", "Hello, Databricks!", True)
# Wrote 2258987 bytes.
# Out[6]: True
R
dbutils.fs.put("/Volumes/main/default/my-volume/hello.txt", "Hello, Databricks!", TRUE)
# [1] TRUE
Scala
dbutils.fs.put("/Volumes/main/default/my-volume/hello.txt", "Hello, Databricks!", true)
// Wrote 2258987 bytes.
// res2: Boolean = true
refreshMounts-kommandot (dbutils.fs.refreshMounts)
refreshMounts: boolean
Tvingar alla datorer i klustret att uppdatera sin monteringscache så att de får den senaste informationen.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("refreshMounts")
Exempel
Python
dbutils.fs.refreshMounts()
Scala
dbutils.fs.refreshMounts()
Exempel på tilläggskod finns i Ansluta till Azure Data Lake Storage Gen2 och Blob Storage.
rm-kommando (dbutils.fs.rm)
rm(dir: String, recurse: boolean = false): boolean
Tar bort en fil eller katalog och eventuellt allt dess innehåll. Om en fil anges ignoreras parametern recurse
. Om en katalog har angetts uppstår ett fel när recurse
den är inaktiverad och katalogen inte är tom.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("rm")
Exempel
Det här exemplet tar bort hela katalogen /Volumes/main/default/my-volume/my-data/
inklusive dess innehåll.
Python
dbutils.fs.rm("/Volumes/main/default/my-volume/my-data/", True)
# Out[8]: True
R
dbutils.fs.rm("/Volumes/main/default/my-volume/my-data/", TRUE)
# [1] TRUE
Scala
dbutils.fs.rm("/Volumes/main/default/my-volume/my-data/", true)
// res6: Boolean = true
unmount-kommando (dbutils.fs.unmount)
unmount(mountPoint: String): boolean
Tar bort en DBFS-monteringspunkt.
Varning
Undvik fel genom att aldrig ändra en monteringspunkt medan andra jobb läser eller skriver till den. När du har modifierat en montering kör dbutils.fs.refreshMounts()
du alltid på alla andra kluster som körs för att sprida eventuella monteringsuppdateringar. Se refreshMounts-kommandot (dbutils.fs.refreshMounts).
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("unmount")
Exempel
dbutils.fs.unmount("/mnt/<mount-name>")
Ytterligare kodexempel finns i Ansluta till Azure Data Lake Storage Gen2 och Blob Storage.
updateMount-kommando (dbutils.fs.updateMount)
updateMount(source: String, mountPoint: String, encryptionType: String = "",
owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean
dbutils.fs.mount
Liknar kommandot, men uppdaterar en befintlig monteringspunkt i stället för att skapa en ny. Returnerar ett fel om monteringspunkten inte finns.
Varning
Undvik fel genom att aldrig ändra en monteringspunkt medan andra jobb läser eller skriver till den. När du har modifierat en montering kör dbutils.fs.refreshMounts()
du alltid på alla andra kluster som körs för att sprida eventuella monteringsuppdateringar. Se refreshMounts-kommandot (dbutils.fs.refreshMounts).
Det här kommandot är tillgängligt i Databricks Runtime 10.4 LTS och senare.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.fs.help("updateMount")
Exempel
Python
dbutils.fs.updateMount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
mount_point = "/mnt/<mount-name>",
extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})
Scala
dbutils.fs.updateMount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>",
mountPoint = "/mnt/<mount-name>",
extraConfigs = Map("<conf-key>" -> dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")))
Jobbverktyget (dbutils.jobs)
Tillhandahåller verktyg för att utnyttja jobbfunktioner.
Kommentar
Det här verktyget är endast tillgängligt för Python.
I följande tabell visas de tillgängliga modulerna för det här verktyget, som du kan hämta med hjälp av dbutils.jobs.help()
.
Delmodul | Beskrivning |
---|---|
taskValues | Tillhandahåller verktyg för att utnyttja arbetsuppgiftsvärden |
taskValues subutility (dbutils.jobs.taskValues)
Kommentar
Den här subutiliteten är endast tillgänglig för Python.
Innehåller kommandon för att utnyttja jobbaktivitetsvärden.
Använd det här underverktyget för att ange och hämta godtyckliga värden under en jobbkörning. Dessa värden kallas uppgiftsvärden. Alla aktiviteter kan hämta värden som anges av överordnade aktiviteter och ange värden för underordnade aktiviteter som ska användas.
Varje aktivitetsvärde har en unik nyckel i samma aktivitet. Den här unika nyckeln kallas för aktivitetsvärdets nyckel. Ett aktivitetsvärde nås med uppgiftsnamnet och aktivitetsvärdets nyckel. Du kan använda detta för att skicka information nedströms från aktivitet till uppgift inom samma jobbkörning. Du kan till exempel skicka identifierare eller mått, till exempel information om utvärderingen av en maskininlärningsmodell, mellan olika uppgifter inom en jobbkörning.
I följande tabell visas tillgängliga kommandon för den här underutnyttjandet, som du kan hämta med hjälp av dbutils.jobs.taskValues.help()
.
Befallning | Beskrivning |
---|---|
få | Hämtar innehållet i det angivna aktivitetsvärdet för den angivna aktiviteten i den aktuella jobbkörningen. |
sätt | Anger eller uppdaterar ett aktivitetsvärde. Du kan definiera upp till 250 uppgiftsvärden för ett jobbkörningspass. |
hämta kommandot (dbutils.jobs.taskValues.get)
Kommentar
Det här kommandot är endast tillgängligt för Python.
På Databricks Runtime 10.4 och tidigare, om get
det inte går att hitta uppgiften, genereras en Py4JJavaError i stället för en ValueError
.
get(taskKey: String, key: String, default: int, debugValue: int): Seq
Hämtar innehållet i det angivna aktivitetsvärdet för den angivna aktiviteten i den aktuella jobbkörningen.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.jobs.taskValues.help("get")
Exempel
Till exempel:
dbutils.jobs.taskValues.get(taskKey = "my-task", \
key = "my-key", \
default = 7, \
debugValue = 42)
I exemplet ovan händer följande:
-
taskKey
är namnet på den uppgift som anger aktivitetsvärdet. Om kommandot inte kan hitta den här uppgiften utlöses enValueError
. -
key
är namnet på aktivitetsvärdets nyckel som du anger med kommandot set (dbutils.jobs.taskValues.set). Om kommandot inte kan hitta det här aktivitetsvärdets nyckel utlöses enValueError
(såvida intedefault
anges). -
default
är ett valfritt värde som returneras omkey
det inte går att hitta.default
kan inte varaNone
. -
debugValue
är ett valfritt värde som returneras om du försöker hämta taskvärdet inifrån en notebook som körs utanför ett jobb. Detta kan vara användbart vid felsökning när du vill köra notebook-filen manuellt och returnera ett värde i stället för att höja ettTypeError
som standard.debugValue
kan inte varaNone
.
Om du försöker hämta ett aktivitetsvärde inifrån en notebook-fil som körs utanför ett jobb, kommer det här kommandot att som standard generera ett fel av typen TypeError
. Men om debugValue
argumentet anges i kommandot returneras värdet debugValue
för i stället för att höja en TypeError
.
ställ in kommando (dbutils.jobs.taskValues.set)
Kommentar
Det här kommandot är endast tillgängligt för Python.
set(key: String, value: String): boolean
Anger eller uppdaterar ett aktivitetsvärde. Du kan definiera upp till 250 uppgiftsvärden för ett jobbkörningspass.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.jobs.taskValues.help("set")
Exempel
Vissa exempel inkluderar:
dbutils.jobs.taskValues.set(key = "my-key", \
value = 5)
dbutils.jobs.taskValues.set(key = "my-other-key", \
value = "my other value")
I föregående exempel:
-
key
är aktivitetsvärdets nyckel. Den här nyckeln måste vara unik för uppgiften. Om två olika aktiviteter var och en anger ett aktivitetsvärde med nyckelnK
är det två olika aktivitetsvärden som har samma nyckelK
. -
value
är värdet för det här aktivitetsvärdets nyckel. Det här kommandot måste kunna representera värdet internt i JSON-format. Storleken på JSON-representationen av värdet får inte överstiga 48 KiB.
Om du försöker ange ett aktivitetsvärde inifrån en notebook-fil som körs utanför ett jobb gör det här kommandot ingenting.
Biblioteksverktyget (dbutils.library)
De flesta metoder i undermodulen dbutils.library
är inaktuella. Se Biblioteksverktyget (dbutils.library) (äldre).
Du kan behöva starta om Python-processen på Azure Databricks programmatiskt för att säkerställa att lokalt installerade eller uppgraderade bibliotek fungerar korrekt i Python-kerneln för din aktuella SparkSession. Gör detta via kommandot dbutils.library.restartPython
. Se Starta om Python-processen i Azure Databricks.
Notebook-verktyget (dbutils.notebook)
Med notebook-verktyget kan du länka ihop notebook-filer och agera utifrån deras resultat. Se Orchestrate notebooks och modularisera kod i notebooks.
I följande tabell visas de tillgängliga kommandona för det här verktyget, som du kan hämta med hjälp av dbutils.notebook.help()
.
Befallning | Beskrivning |
---|---|
avsluta | Avslutar en notebook-fil med ett värde |
köra | Kör en notebook-fil och returnerar dess slutvärde |
exit command (dbutils.notebook.exit)
exit(value: String): void
Avslutar en notebook-fil med ett värde.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.notebook.help("exit")
Exempel
Det här exemplet avslutar notebook-filen med värdet Exiting from My Other Notebook
.
Python
dbutils.notebook.exit("Exiting from My Other Notebook")
# Notebook exited: Exiting from My Other Notebook
R
dbutils.notebook.exit("Exiting from My Other Notebook")
# Notebook exited: Exiting from My Other Notebook
Scala
dbutils.notebook.exit("Exiting from My Other Notebook")
// Notebook exited: Exiting from My Other Notebook
Kommentar
Om körningen har en fråga med strukturerad direktuppspelning som körs i bakgrunden avslutar inte anropet dbutils.notebook.exit()
körningen. Körningen fortsätter att köras så länge frågan körs i bakgrunden. Du kan stoppa frågan som körs i bakgrunden genom att klicka på Avbryt i frågans cell eller genom att köra query.stop()
. När frågan stoppas kan du avsluta körningen med dbutils.notebook.exit()
.
kör kommandot (dbutils.notebook.run)
run(path: String, timeoutSeconds: int, arguments: Map): String
Kör en notebook-fil och returnerar dess slutvärde. Notebook-filen körs som standard i det aktuella klustret.
Kommentar
Den maximala längden på strängvärdet som returneras från run
kommandot är 5 MB. Se Hämta utdata för en enda körning (GET /jobs/runs/get-output
).
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.notebook.help("run")
Exempel
Det här exemplet kör en notebook-fil med namnet My Other Notebook
på samma plats som den anropande anteckningsboken. Den anropade notebook-filen slutar med kodraden dbutils.notebook.exit("Exiting from My Other Notebook")
. Om den anropade notebook-filen inte har körts inom 60 sekunder genereras ett undantag.
Python
dbutils.notebook.run("My Other Notebook", 60)
# Out[14]: 'Exiting from My Other Notebook'
Scala
dbutils.notebook.run("My Other Notebook", 60)
// res2: String = Exiting from My Other Notebook
Secrets-verktyget (dbutils.secrets)
Med verktyget hemligheter kan du lagra och komma åt känslig information om autentiseringsuppgifter utan att göra dem synliga i notebook-filer. Se Hemlig hantering och Steg 3: Använd hemligheterna i en notebook-fil.
I följande tabell visas de tillgängliga kommandona för det här verktyget, som du kan hämta med hjälp av dbutils.secrets.help()
.
Befallning | Beskrivning |
---|---|
få | Hämtar strängrepresentationen av ett hemligt värde med omfång och nyckel |
getBytes | Hämtar byte-representationen av ett hemligt värde med omfattning och nyckel |
lista | Visar en lista med hemliga metadata för hemligheter inom ett omfång |
listScopes | Lista hemliga åtkomstområden |
hämta kommandot (dbutils.secrets.get)
get(scope: String, key: String): String
Hämtar strängrepresentationen av ett hemligt värde för det angivna hemlighetsomfånget och nyckeln.
Varning
Administratörer, hemliga skapare och användare som beviljats behörighet kan läsa Azure Databricks-hemligheter. Även om Azure Databricks gör ett försök att redigera hemliga värden som kan visas i notebook-filer, går det inte att hindra sådana användare från att läsa hemligheter. Mer information finns i Hemlig redigering.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.secrets.help("get")
Exempel
Det här exemplet hämtar strängrepresentationen av det hemliga värdet för omfånget med namnet my-scope
och nyckeln med namnet my-key
.
Python
dbutils.secrets.get(scope="my-scope", key="my-key")
# Out[14]: '[REDACTED]'
R
dbutils.secrets.get(scope="my-scope", key="my-key")
# [1] "[REDACTED]"
Scala
dbutils.secrets.get(scope="my-scope", key="my-key")
// res0: String = [REDACTED]
getBytes-kommandot (dbutils.secrets.getBytes)
getBytes(scope: String, key: String): byte[]
Hämtar byterepresentationen av ett hemligt värde för det angivna omfånget och nyckeln.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.secrets.help("getBytes")
Exempel
Det här exemplet hämtar byterepresentationen av det hemliga värdet (i det här exemplet a1!b2@c3#
) för omfånget med namnet my-scope
och nyckeln med namnet my-key
.
Python
dbutils.secrets.getBytes(scope="my-scope", key="my-key")
# Out[1]: b'a1!b2@c3#'
R
dbutils.secrets.getBytes(scope="my-scope", key="my-key")
# [1] 61 31 21 62 32 40 63 33 23
Scala
dbutils.secrets.getBytes(scope="my-scope", key="my-key")
// res1: Array[Byte] = Array(97, 49, 33, 98, 50, 64, 99, 51, 35)
listkommando (dbutils.secrets.list)
list(scope: String): Seq
Visar en lista över metadata för hemligheter inom det angivna omfånget.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.secrets.help("list")
Exempel
I det här exemplet visas metadata för hemligheter inom omfånget med namnet my-scope
.
Python
dbutils.secrets.list("my-scope")
# Out[10]: [SecretMetadata(key='my-key')]
R
dbutils.secrets.list("my-scope")
# [[1]]
# [[1]]$key
# [1] "my-key"
Scala
dbutils.secrets.list("my-scope")
// res2: Seq[com.databricks.dbutils_v1.SecretMetadata] = ArrayBuffer(SecretMetadata(my-key))
listScopes-kommandot (dbutils.secrets.listScopes)
listScopes: Seq
Visar en lista över tillgängliga omfång.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.secrets.help("listScopes")
Exempel
I det här exemplet visas tillgängliga omfång.
Python
dbutils.secrets.listScopes()
# Out[14]: [SecretScope(name='my-scope')]
R
dbutils.secrets.listScopes()
# [[1]]
# [[1]]$name
# [1] "my-scope"
Scala
dbutils.secrets.listScopes()
// res3: Seq[com.databricks.dbutils_v1.SecretScope] = ArrayBuffer(SecretScope(my-scope))
Widgets-verktyget (dbutils.widgets)
Med widgetverktyget kan du parametrisera notebook-filer. Se Databricks-widgetar.
I följande tabell visas de tillgängliga kommandona för det här verktyget, som du kan hämta med hjälp av dbutils.widgets.help()
.
Befallning | Beskrivning |
---|---|
kombinationsruta | Skapar en combobox-indatawidget med ett angivet namn, standardvärde och val |
rullgardinsmeny | Skapar en rullgardinsmeny för inmatning med ett namn, standardvärde och alternativ |
få | Hämtar aktuellt värde för en indatawidget |
getAll | Hämtar en karta över alla widgetnamn och deras värden |
getArgument | Föråldrad. Ekvivalent att hämta |
flerurval | Skapar en multiselect-indatawidget med ett givet namn, standardvärde och val |
ta bort | Tar bort en indatawidget från notebooken |
ta bort alla | Tar bort alla widgetar i notebook-filen |
text | Skapar en textinmatningswidget med ett förnamn och standardvärde |
combobox-kommando (dbutils.widgets.combobox)
combobox(name: String, defaultValue: String, choices: Seq, label: String): void
Skapar och visar en widget i kombinationsrutan med det angivna programmatiska namnet, standardvärdet, valen och den valfria etiketten.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("combobox")
Exempel
Det här exemplet skapar och visar en kombinationsruta med det programmatiska namnet fruits_combobox
. Den erbjuder alternativen apple
, banana
, coconut
och dragon fruit
och är inställt på det ursprungliga värdet för banana
. Den här kombinationsrutewidgeten har en tillhörande etikett Fruits
. Det här exemplet slutar med att skriva ut det initiala värdet för kombinationsrutans widget, banana
.
Python
dbutils.widgets.combobox(
name='fruits_combobox',
defaultValue='banana',
choices=['apple', 'banana', 'coconut', 'dragon fruit'],
label='Fruits'
)
print(dbutils.widgets.get("fruits_combobox"))
# banana
R
dbutils.widgets.combobox(
name='fruits_combobox',
defaultValue='banana',
choices=list('apple', 'banana', 'coconut', 'dragon fruit'),
label='Fruits'
)
print(dbutils.widgets.get("fruits_combobox"))
# [1] "banana"
Scala
dbutils.widgets.combobox(
"fruits_combobox",
"banana",
Array("apple", "banana", "coconut", "dragon fruit"),
"Fruits"
)
print(dbutils.widgets.get("fruits_combobox"))
// banana
SQL
CREATE WIDGET COMBOBOX fruits_combobox DEFAULT "banana" CHOICES SELECT * FROM (VALUES ("apple"), ("banana"), ("coconut"), ("dragon fruit"))
SELECT :fruits_combobox
-- banana
listrutekommando (dbutils.widgets.dropdown)
dropdown(name: String, defaultValue: String, choices: Seq, label: String): void
Skapar och visar en listrutewidget med angivet programmatiskt namn, standardvärde, val och valfri etikett.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("dropdown")
Exempel
Det här exemplet skapar och visar en listrutewidget med det programmatiska namnet toys_dropdown
. Den erbjuder alternativen alphabet blocks
, basketball
, cape
och doll
och är inställt på det ursprungliga värdet för basketball
. Den här listrutewidgeten har en tillhörande etikett Toys
. Det här exemplet slutar med att skriva ut det inledande värdet för listrutewidgeten, basketball
.
Python
dbutils.widgets.dropdown(
name='toys_dropdown',
defaultValue='basketball',
choices=['alphabet blocks', 'basketball', 'cape', 'doll'],
label='Toys'
)
print(dbutils.widgets.get("toys_dropdown"))
# basketball
R
dbutils.widgets.dropdown(
name='toys_dropdown',
defaultValue='basketball',
choices=list('alphabet blocks', 'basketball', 'cape', 'doll'),
label='Toys'
)
print(dbutils.widgets.get("toys_dropdown"))
# [1] "basketball"
Scala
dbutils.widgets.dropdown(
"toys_dropdown",
"basketball",
Array("alphabet blocks", "basketball", "cape", "doll"),
"Toys"
)
print(dbutils.widgets.get("toys_dropdown"))
// basketball
SQL
CREATE WIDGET DROPDOWN toys_dropdown DEFAULT "basketball" CHOICES SELECT * FROM (VALUES ("alphabet blocks"), ("basketball"), ("cape"), ("doll"))
SELECT :toys_dropdown
-- basketball
hämta kommandot (dbutils.widgets.get)
get(name: String): String
Hämtar det aktuella värdet för widgeten med det angivna programmatiska namnet. Det här programmatiska namnet kan vara antingen:
- Namnet på en anpassad widget i notebook-filen, till exempel
fruits_combobox
ellertoys_dropdown
. - Namnet på en anpassad parameter som skickas till notebook-filen som en del av en notebook-uppgift, till exempel
name
ellerage
. Mer information finns om täckning av parametrar för notebook-uppdrag i jobbgränssnittet eller fältetnotebook_params
i operationen Initiera en ny körning av jobb (POST /jobs/run-now
) i jobb-API:et.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("get")
Exempel
Det här exemplet hämtar värdet för widgeten som har det programmatiska namnet fruits_combobox
.
Python
dbutils.widgets.get('fruits_combobox')
# banana
R
dbutils.widgets.get('fruits_combobox')
# [1] "banana"
Scala
dbutils.widgets.get("fruits_combobox")
// res6: String = banana
SQL
SELECT :fruits_combobox
-- banana
Det här exemplet hämtar värdet för notebook-aktivitetsparametern som har det programmatiska namnet age
. Den här parametern har angetts till 35
när den relaterade notebook-uppgiften kördes.
Python
dbutils.widgets.get('age')
# 35
R
dbutils.widgets.get('age')
# [1] "35"
Scala
dbutils.widgets.get("age")
// res6: String = 35
SQL
SELECT :age
-- 35
getAll-kommandot (dbutils.widgets.getAll)
getAll: map
Hämtar en mappning av alla aktuella widgetnamn och värden. Detta kan vara särskilt användbart för att snabbt skicka widgetvärden till en spark.sql()
fråga.
Det här kommandot är tillgängligt i Databricks Runtime 13.3 LTS och senare. Den är endast tillgänglig för Python och Scala.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("getAll")
Exempel
Det här exemplet hämtar kartan över widgetvärden och skickar den som parameterargument i en Spark SQL-fråga.
Python
df = spark.sql("SELECT * FROM table where col1 = :param", dbutils.widgets.getAll())
df.show()
# Query output
Scala
val df = spark.sql("SELECT * FROM table where col1 = :param", dbutils.widgets.getAll())
df.show()
// res6: Query output
getArgument-kommando (dbutils.widgets.getArgument)
getArgument(name: String, optional: String): String
Hämtar det aktuella värdet för widgeten med det angivna programmatiska namnet. Om widgeten inte finns kan ett valfritt meddelande returneras.
Kommentar
Det här kommandot är inaktuellt. Använd dbutils.widgets.get i stället.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("getArgument")
Exempel
Det här exemplet hämtar värdet för widgeten som har det programmatiska namnet fruits_combobox
. Om den här widgeten inte finns returneras meddelandet Error: Cannot find fruits combobox
.
Python
dbutils.widgets.getArgument('fruits_combobox', 'Error: Cannot find fruits combobox')
# Deprecation warning: Use dbutils.widgets.text() or dbutils.widgets.dropdown() to create a widget and dbutils.widgets.get() to get its bound value.
# Out[3]: 'banana'
R
dbutils.widgets.getArgument('fruits_combobox', 'Error: Cannot find fruits combobox')
# Deprecation warning: Use dbutils.widgets.text() or dbutils.widgets.dropdown() to create a widget and dbutils.widgets.get() to get its bound value.
# [1] "banana"
Scala
dbutils.widgets.getArgument("fruits_combobox", "Error: Cannot find fruits combobox")
// command-1234567890123456:1: warning: method getArgument in trait WidgetsUtils is deprecated: Use dbutils.widgets.text() or dbutils.widgets.dropdown() to create a widget and dbutils.widgets.get() to get its bound value.
// dbutils.widgets.getArgument("fruits_combobox", "Error: Cannot find fruits combobox")
// ^
// res7: String = banana
multiselect-kommando (dbutils.widgets.multiselect)
multiselect(name: String, defaultValue: String, choices: Seq, label: String): void
Skapar och visar en multiselect-widget med angivet programmatiskt namn, standardvärde, val och valfri etikett.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("multiselect")
Exempel
Det här exemplet skapar och visar en multiselect-widget med det programmatiska namnet days_multiselect
. Den erbjuder alternativen Monday
till och med Sunday
och är satt till det ursprungliga värdet för Tuesday
. Den här multiselect-widgeten har en tillhörande etikett Days of the Week
. Det här exemplet slutar med att skriva ut det inledande värdet för multiselect-widgeten, Tuesday
.
Python
dbutils.widgets.multiselect(
name='days_multiselect',
defaultValue='Tuesday',
choices=['Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday'],
label='Days of the Week'
)
print(dbutils.widgets.get("days_multiselect"))
# Tuesday
R
dbutils.widgets.multiselect(
name='days_multiselect',
defaultValue='Tuesday',
choices=list('Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday'),
label='Days of the Week'
)
print(dbutils.widgets.get("days_multiselect"))
# [1] "Tuesday"
Scala
dbutils.widgets.multiselect(
"days_multiselect",
"Tuesday",
Array("Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"),
"Days of the Week"
)
print(dbutils.widgets.get("days_multiselect"))
// Tuesday
SQL
CREATE WIDGET MULTISELECT days_multiselect DEFAULT "Tuesday" CHOICES SELECT * FROM (VALUES ("Monday"), ("Tuesday"), ("Wednesday"), ("Thursday"), ("Friday"), ("Saturday"), ("Sunday"))
SELECT :days_multiselect
-- Tuesday
ta bort kommandot (dbutils.widgets.remove)
remove(name: String): void
Tar bort widgeten med det angivna programmatiska namnet.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("remove")
Viktigt!
Om du lägger till ett kommando för att ta bort en widget kan du inte lägga till ett efterföljande kommando för att skapa en widget i samma cell. Du måste skapa widgeten i en annan cell.
Exempel
Det här exemplet tar bort widgeten med det programmatiska namnet fruits_combobox
.
Python
dbutils.widgets.remove('fruits_combobox')
R
dbutils.widgets.remove('fruits_combobox')
Scala
dbutils.widgets.remove("fruits_combobox")
SQL
REMOVE WIDGET fruits_combobox
removeAll-kommandot (dbutils.widgets.removeAll)
removeAll: void
Tar bort alla widgetar från notebook-filen.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("removeAll")
Viktigt!
Om du lägger till ett kommando för att ta bort alla widgetar kan du inte lägga till ett efterföljande kommando för att skapa widgetar i samma cell. Du måste skapa widgetarna i en annan cell.
Exempel
Det här exemplet tar bort alla widgetar från notebook-filen.
Python
dbutils.widgets.removeAll()
R
dbutils.widgets.removeAll()
Scala
dbutils.widgets.removeAll()
textkommando (dbutils.widgets.text)
text(name: String, defaultValue: String, label: String): void
Skapar och visar en textwidget med det angivna programmatiska namnet, standardvärdet och den valfria etiketten.
Om du vill visa fullständig hjälp för det här kommandot kör du:
dbutils.widgets.help("text")
Exempel
Det här exemplet skapar och visar en textwidget med det programmatiska namnet your_name_text
. Det är inställt på det ursprungliga värdet för Enter your name
. Den här textwidgeten har en tillhörande etikett Your name
. Det här exemplet slutar med att skriva ut det inledande värdet för textwidgeten, Enter your name
.
Python
dbutils.widgets.text(
name='your_name_text',
defaultValue='Enter your name',
label='Your name'
)
print(dbutils.widgets.get("your_name_text"))
# Enter your name
R
dbutils.widgets.text(
name='your_name_text',
defaultValue='Enter your name',
label='Your name'
)
print(dbutils.widgets.get("your_name_text"))
# [1] "Enter your name"
Scala
dbutils.widgets.text(
"your_name_text",
"Enter your name",
"Your name"
)
print(dbutils.widgets.get("your_name_text"))
// Enter your name
SQL
CREATE WIDGET TEXT your_name_text DEFAULT "Enter your name"
SELECT :your_name_text
-- Enter your name
Api-bibliotek för Databricks Utilities
Viktigt!
Databricks Utilities API -biblioteket (dbutils-api
) är inaktuellt. Databricks rekommenderar att du använder något av följande i stället:
För att påskynda programutvecklingen kan det vara bra att kompilera, skapa och testa program innan du distribuerar dem som produktionsjobb. För att du ska kunna kompilera mot Databricks Utilities tillhandahåller dbutils-api
Databricks biblioteket. Du kan ladda ned dbutils-api
biblioteket från DBUtils API-webbsidan på webbplatsen för Maven-lagringsplatsen eller inkludera biblioteket genom att lägga till ett beroende i byggfilen:
SBT
libraryDependencies += "com.databricks" % "dbutils-api_TARGET" % "VERSION"
Maven
<dependency> <groupId>com.databricks</groupId> <artifactId>dbutils-api_TARGET</artifactId> <version>VERSION</version> </dependency>
Gradle
compile 'com.databricks:dbutils-api_TARGET:VERSION'
Ersätt TARGET
med önskat mål (till exempel 2.12
) och VERSION
med önskad version (till exempel 0.0.5
). En lista över tillgängliga mål och versioner finns på webbplatsen DBUtils API på webbplatsen för Maven-lagringsplatsen.
När du har skapat programmet mot det här biblioteket kan du distribuera programmet.
Viktigt!
Med dbutils-api
biblioteket kan du bara kompilera ett program lokalt som använder dbutils
, inte för att köra det. Om du vill köra programmet måste du distribuera det i Azure Databricks.
Begränsningar
Att anropa dbutils
i exekveringsmiljöer kan ge oväntade resultat eller fel.
Om du behöver köra filsystemåtgärder på utförare med hjälp av dbutils
, hänvisar du till metoderna för parallell listning och borttagning med Spark i Hur du listar och tar bort filer snabbare med Databricks.
Information om köre finns i Översikt över klusterläge på Apache Spark-webbplatsen.