Databricks Utilities (dbutils) referencia

Ez a cikk a Databricks Utilities (dbutils) referenciája. dbutils A segédprogramok Python-, R- és Scala-jegyzetfüzetekben érhetők el. A segédprogramok segítségével a következőket teheti:

  • Fájlok és objektumtárolók hatékony használata.
  • Titkos kulcsok kezelése.

Útmutató: Segédprogramok listázása, listaparancsok, megjelenítési parancs súgója

Segédprogramok: adatok, fs, feladatok, tár, jegyzetfüzet, titkos kódok, widgetek, Utilities API-kódtár

Elérhető segédprogramok listázása

Az elérhető segédprogramok felsorolásához és az egyes segédprogramok rövid leírásához futtassa dbutils.help() a Pythont vagy a Scalát.

Ez a példa a Databricks segédprogramok elérhető parancsait sorolja fel.

Python

dbutils.help()

Scala

dbutils.help()
This module provides various utilities for users to interact with the rest of Databricks.

credentials: DatabricksCredentialUtils -> Utilities for interacting with credentials within notebooks
data: DataUtils -> Utilities for understanding and interacting with datasets (EXPERIMENTAL)
fs: DbfsUtils -> Manipulates the Databricks filesystem (DBFS) from the console
jobs: JobsUtils -> Utilities for leveraging jobs features
library: LibraryUtils -> Utilities for session isolated libraries
meta: MetaUtils -> Methods to hook into the compiler (EXPERIMENTAL)
notebook: NotebookUtils -> Utilities for the control flow of a notebook (EXPERIMENTAL)
preview: Preview -> Utilities under preview category
secrets: SecretUtils -> Provides utilities for leveraging secrets within notebooks
widgets: WidgetsUtils -> Methods to create and get bound value of input widgets inside notebooks

Egy segédprogram elérhető parancsainak listázása

Ha egy segédprogram elérhető parancsait és az egyes parancsok rövid leírását szeretné listázni, futtassa .help() a segédprogram programozott neve után.

Ez a példa a Databricks Fájlrendszer (DBFS) segédprogram elérhető parancsait sorolja fel.

Python

dbutils.fs.help()

R

dbutils.fs.help()

Scala

dbutils.fs.help()
dbutils.fs provides utilities for working with FileSystems. Most methods in this package can take either a DBFS path (e.g., "/foo" or "dbfs:/foo"), or another FileSystem URI. For more info about a method, use dbutils.fs.help("methodName"). In notebooks, you can also use the %fs shorthand to access DBFS. The %fs shorthand maps straightforwardly onto dbutils calls. For example, "%fs head --maxBytes=10000 /file/path" translates into "dbutils.fs.head("/file/path", maxBytes = 10000)".

fsutils

cp(from: String, to: String, recurse: boolean = false): boolean -> Copies a file or directory, possibly across FileSystems
head(file: String, maxBytes: int = 65536): String -> Returns up to the first 'maxBytes' bytes of the given file as a String encoded in UTF-8
ls(dir: String): Seq -> Lists the contents of a directory
mkdirs(dir: String): boolean -> Creates the given directory if it does not exist, also creating any necessary parent directories
mv(from: String, to: String, recurse: boolean = false): boolean -> Moves a file or directory, possibly across FileSystems
put(file: String, contents: String, overwrite: boolean = false): boolean -> Writes the given String out to a file, encoded in UTF-8
rm(dir: String, recurse: boolean = false): boolean -> Removes a file or directory

mount

mount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Mounts the given source directory into DBFS at the given mount point
mounts: Seq -> Displays information about what is mounted within DBFS
refreshMounts: boolean -> Forces all machines in this cluster to refresh their mount cache, ensuring they receive the most recent information
unmount(mountPoint: String): boolean -> Deletes a DBFS mount point
updateMount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Similar to mount(), but updates an existing mount point instead of creating a new one

Súgó megjelenítése parancshoz

A parancs súgójának megjelenítéséhez futtassa .help("<command-name>") a parancs neve után.

Ez a példa a DBFS másolási parancs súgóját jeleníti meg.

Python

dbutils.fs.help("cp")

R

dbutils.fs.help("cp")

Scala

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

Adat segédprogram (dbutils.data)

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

Feljegyzés

A Databricks Runtime 9.0-s vagy újabb verziója érhető el.

Parancsok: összegzés

Az adat segédprogram lehetővé teszi az adathalmazok megértését és értelmezését. Az elérhető parancsok listázásához futtassa a parancsot dbutils.data.help().

dbutils.data provides utilities for understanding and interpreting datasets. This module is currently in preview and may be unstable. For more info about a method, use dbutils.data.help("methodName").

summarize(df: Object, precise: boolean): void -> Summarize a Spark DataFrame and visualize the statistics to get quick insights

summarize command (dbutils.data.summarize)

Kiszámítja és megjeleníti az Apache Spark DataFrame vagy a pandas DataFrame összesített statisztikáit. Ez a parancs Python, Scala és R esetén érhető el.

Ez a parancs elemzi a DataFrame teljes tartalmát. A parancs nagyon nagy méretű DataFrame-ekhez való futtatása nagyon költséges lehet.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.data.help("summarize").

A Databricks Runtime 10.4 LTS és újabb verzióiban a további precise paraméter használatával módosíthatja a kiszámított statisztikák pontosságát.

Feljegyzés

Ez a funkció a nyilvános előzetes verzióban érhető el.

  • Ha precise hamis (alapértelmezett) értékre van állítva, néhány visszaadott statisztika a futási idő csökkentésére vonatkozó közelítéseket tartalmaz.
    • A kategorikus oszlopok eltérő értékeinek száma ~5%-os relatív hibát okozhat a magas számosságú oszlopok esetében.
    • A gyakori értékek száma akár 0,01%-os hibát is okozhat, ha a különböző értékek száma meghaladja az 10000-et.
    • A hisztogramok és a percentilisbecslések akár 0,01%-os hibát is okozhatnak a sorok teljes számához képest.
  • Ha precise igaz értékre van állítva, a statisztikák nagyobb pontossággal lesznek kiszámítva. A numerikus oszlopok hisztogramjai és percentilisei kivételével minden statisztika pontos.
    • A hisztogramok és a percentilisbecslések legfeljebb 0,0001%-os hibát okozhatnak a sorok teljes számához képest.

Az adatösszesítő kimenet tetején található elemleírás az aktuális futtatás módját jelzi.

Ez a példa az Apache Spark DataFrame összesített statisztikáit jeleníti meg, alapértelmezés szerint engedélyezett közelítésekkel. Az eredmények megtekintéséhez futtassa ezt a parancsot egy jegyzetfüzetben. Ez a példa mintaadatkészleteken alapul.

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)

Vegye figyelembe, hogy a vizualizáció SI-jelölést használ a 0,01-nél kisebb vagy 10000-nél nagyobb numerikus értékek tömör megjelenítéséhez. A numerikus érték 1.25e-15 például a következőképpen jelenik meg 1.25f. Egy kivétel: a vizualizáció a "" helyett a "B"1.0e9 (giga) értéketG használja.

Fájlrendszer segédprogram (dbutils.fs)

Figyelmeztetés

Az összes dbutils.fs metódus Python-implementációja a snake_case kulcsszóformázás helyett camelCase .

Például: ha dbutils.fs.help() a Pythonban megjeleníti a beállítási lehetőséget extraConfigsdbutils.fs.mount(), a kulcsszót extra_configshasználná.

Parancsok: cp, head, ls, mkdirs, mount, mounts, mv, put, refreshMounts, rm, unmount, updateMount

A fájlrendszer segédprogramja lehetővé teszi a What is the Databricks File System (DBFS)? elérését, így egyszerűbben használhatja az Azure Databrickset fájlrendszerként. Az elérhető parancsok listázásához futtassa a parancsot dbutils.fs.help().

dbutils.fs provides utilities for working with FileSystems. Most methods in this package can take either a DBFS path (e.g., "/foo" or "dbfs:/foo"), or another FileSystem URI. For more info about a method, use dbutils.fs.help("methodName"). In notebooks, you can also use the %fs shorthand to access DBFS. The %fs shorthand maps straightforwardly onto dbutils calls. For example, "%fs head --maxBytes=10000 /file/path" translates into "dbutils.fs.head("/file/path", maxBytes = 10000)".

fsutils

cp(from: String, to: String, recurse: boolean = false): boolean -> Copies a file or directory, possibly across FileSystems
head(file: String, maxBytes: int = 65536): String -> Returns up to the first 'maxBytes' bytes of the given file as a String encoded in UTF-8
ls(dir: String): Seq -> Lists the contents of a directory
mkdirs(dir: String): boolean -> Creates the given directory if it does not exist, also creating any necessary parent directories
mv(from: String, to: String, recurse: boolean = false): boolean -> Moves a file or directory, possibly across FileSystems
put(file: String, contents: String, overwrite: boolean = false): boolean -> Writes the given String out to a file, encoded in UTF-8
rm(dir: String, recurse: boolean = false): boolean -> Removes a file or directory

mount

mount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Mounts the given source directory into DBFS at the given mount point
mounts: Seq -> Displays information about what is mounted within DBFS
refreshMounts: boolean -> Forces all machines in this cluster to refresh their mount cache, ensuring they receive the most recent information
unmount(mountPoint: String): boolean -> Deletes a DBFS mount point
updateMount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Similar to mount(), but updates an existing mount point instead of creating a new one

cp parancs (dbutils.fs.cp)

Fájl vagy könyvtár másolása, esetleg fájlrendszerek között.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("cp").

Ez a példa átmásolja az elnevezett old_file.txt/FileStore/tmp/newfájlt, és átnevezi a másolt fájlt a fájlra new_file.txt.

Python

dbutils.fs.cp("/FileStore/old_file.txt", "/tmp/new/new_file.txt")

# Out[4]: True

R

dbutils.fs.cp("/FileStore/old_file.txt", "/tmp/new/new_file.txt")

# [1] TRUE

Scala

dbutils.fs.cp("/FileStore/old_file.txt", "/tmp/new/new_file.txt")

// res3: Boolean = true

head command (dbutils.fs.head)

Az adott fájl megadott maximális bájtszámának értékét adja vissza. A bájtok UTF-8 kódolású sztringként lesznek visszaadva.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("head").

Ez a példa a fájl my_file.txt/tmpelső 25 bájtját jeleníti meg.

Python

dbutils.fs.head("/tmp/my_file.txt", 25)

# [Truncated to first 25 bytes]
# Out[12]: 'Apache Spark is awesome!\n'

R

dbutils.fs.head("/tmp/my_file.txt", 25)

# [1] "Apache Spark is awesome!\n"

Scala

dbutils.fs.head("/tmp/my_file.txt", 25)

// [Truncated to first 25 bytes]
// res4: String =
// "Apache Spark is awesome!
// "

ls parancs (dbutils.fs.ls)

Egy könyvtár tartalmát sorolja fel.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("ls").

Ez a példa a tartalommal /tmpkapcsolatos információkat jeleníti meg. A modificationTime mező a Databricks Runtime 10.4 LTS és újabb verziókban érhető el. Az R-ben modificationTime sztringként lesz visszaadva.

Python

dbutils.fs.ls("/tmp")

# Out[13]: [FileInfo(path='dbfs:/tmp/my_file.txt', name='my_file.txt', size=40, modificationTime=1622054945000)]

R

dbutils.fs.ls("/tmp")

# For prettier results from dbutils.fs.ls(<dir>), please use `%fs ls <dir>`

# [[1]]
# [[1]]$path
# [1] "dbfs:/tmp/my_file.txt"

# [[1]]$name
# [1] "my_file.txt"

# [[1]]$size
# [1] 40

# [[1]]$isDir
# [1] FALSE

# [[1]]$isFile
# [1] TRUE

# [[1]]$modificationTime
# [1] "1622054945000"

Scala

dbutils.fs.ls("/tmp")

// res6: Seq[com.databricks.backend.daemon.dbutils.FileInfo] = WrappedArray(FileInfo(dbfs:/tmp/my_file.txt, my_file.txt, 40, 1622054945000))

mkdirs parancs (dbutils.fs.mkdirs)

Létrehozza a megadott könyvtárat, ha nem létezik. Emellett létrehozza a szükséges szülőkönyvtárakat is.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("mkdirs").

Ez a példa létrehozza a könyvtárstruktúrát /parent/child/grandchild a következőn belül /tmp: .

Python

dbutils.fs.mkdirs("/tmp/parent/child/grandchild")

# Out[15]: True

R

dbutils.fs.mkdirs("/tmp/parent/child/grandchild")

# [1] TRUE

Scala

dbutils.fs.mkdirs("/tmp/parent/child/grandchild")

// res7: Boolean = true

csatlakoztatási parancs (dbutils.fs.mount)

Csatlakoztatja a megadott forráskönyvtárat a DBFS-be a megadott csatlakoztatási ponton.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("mount").

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>")))

További példakódokat az Azure Data Lake Storage Gen2 és Blob Storage Csatlakozás című témakörben talál.

mounts command (dbutils.fs.mounts)

Információkat jelenít meg arról, hogy mi van jelenleg csatlakoztatva a DBFS-ben.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("mounts").

Figyelmeztetés

Az új csatlakoztatás propagálásához hívja meg dbutils.fs.refreshMounts() az összes többi futó fürtöt. Lásd: refreshMounts parancs (dbutils.fs.refreshMounts).

Python

dbutils.fs.mounts()

Scala

dbutils.fs.mounts()

További példakódokat az Azure Data Lake Storage Gen2 és Blob Storage Csatlakozás című témakörben talál.

mv parancs (dbutils.fs.mv)

Áthelyez egy fájlt vagy könyvtárat, esetleg fájlrendszerek között. Az áthelyezés egy másolat, amelyet törlés követ, még a fájlrendszereken belüli áthelyezésekhez is.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("mv").

Ez a példa áthelyezi a fájlt my_file.txt/FileStore a következőre /tmp/parent/child/granchild: .

Python

dbutils.fs.mv("/FileStore/my_file.txt", "/tmp/parent/child/grandchild")

# Out[2]: True

R

dbutils.fs.mv("/FileStore/my_file.txt", "/tmp/parent/child/grandchild")

# [1] TRUE

Scala

dbutils.fs.mv("/FileStore/my_file.txt", "/tmp/parent/child/grandchild")

// res1: Boolean = true

put parancs (dbutils.fs.put)

A megadott sztringet egy fájlba írja. A sztring UTF-8 kódolású.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("put").

Ez a példa a sztringet Hello, Databricks! a hello_db.txt következő fájlba /tmpírja: . Ha a fájl létezik, a program felülírja.

Python

dbutils.fs.put("/tmp/hello_db.txt", "Hello, Databricks!", True)

# Wrote 18 bytes.
# Out[6]: True

R

dbutils.fs.put("/tmp/hello_db.txt", "Hello, Databricks!", TRUE)

# [1] TRUE

Scala

dbutils.fs.put("/tmp/hello_db.txt", "Hello, Databricks!", true)

// Wrote 18 bytes.
// res2: Boolean = true

refreshMounts parancs (dbutils.fs.refreshMounts)

Kényszeríti a fürt összes gépét a csatlakoztatási gyorsítótár frissítésére, biztosítva, hogy megkapják a legfrissebb információkat.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("refreshMounts").

Python

dbutils.fs.refreshMounts()

Scala

dbutils.fs.refreshMounts()

Az additív kód példákat az Azure Data Lake Storage Gen2 és Blob Storage Csatlakozás című témakörben talál.

rm parancs (dbutils.fs.rm)

Eltávolít egy fájlt vagy könyvtárat, és opcionálisan az összes tartalmát. Ha egy fájl meg van adva, a rendszer figyelmen kívül hagyja a recurse paramétert. Ha egy könyvtár meg van adva, hiba történik, ha a recurse le van tiltva, és a könyvtár nem üres.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("rm").

Ez a példa eltávolítja a könyvtárat /tmp , beleértve a könyvtár tartalmát is.

Python

dbutils.fs.rm("/tmp", True)

# Out[8]: True

R

dbutils.fs.rm("/tmp", TRUE)

# [1] TRUE

Scala

dbutils.fs.rm("/tmp", true)

// res6: Boolean = true

unmount command (dbutils.fs.unmount)

DbFS-csatlakoztatási pont törlése.

Figyelmeztetés

A hibák elkerülése érdekében soha ne módosítsa a csatlakoztatási pontot, amíg más feladatok olvasnak vagy írnak hozzá. A csatlakoztatás módosítása után mindig futtassa dbutils.fs.refreshMounts() az összes többi futó fürtön a csatlakoztatási frissítések propagálásához. Lásd: refreshMounts parancs (dbutils.fs.refreshMounts).

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("unmount").

dbutils.fs.unmount("/mnt/<mount-name>")

További példakódokat az Azure Data Lake Storage Gen2 és Blob Storage Csatlakozás című témakörben talál.

updateMount parancs (dbutils.fs.updateMount)

Hasonló a dbutils.fs.mount parancshoz, de egy meglévő csatlakoztatási pontot frissít ahelyett, hogy újat hoz létre. Hibát ad vissza, ha a csatlakoztatási pont nincs jelen.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.fs.help("updateMount").

Figyelmeztetés

A hibák elkerülése érdekében soha ne módosítsa a csatlakoztatási pontot, amíg más feladatok olvasnak vagy írnak hozzá. A csatlakoztatás módosítása után mindig futtassa dbutils.fs.refreshMounts() az összes többi futó fürtön a csatlakoztatási frissítések propagálásához. Lásd: refreshMounts parancs (dbutils.fs.refreshMounts).

Ez a parancs a Databricks Runtime 10.4 LTS és újabb verziókban érhető el.

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>")))

Feladatok segédprogram (dbutils.jobs)

Segédeszközök: taskValues

Feljegyzés

Ez a segédprogram csak Pythonhoz érhető el.

A feladatok segédprogram lehetővé teszi a feladatok funkcióinak kihasználását. A segédprogram súgójának megjelenítéséhez futtassa a következőt dbutils.jobs.help(): .

Provides utilities for leveraging jobs features.

taskValues: TaskValuesUtils -> Provides utilities for leveraging job task values

taskValues subutility (dbutils.jobs.taskValues)

Parancsok: beolvasás, beállítás

Feljegyzés

Ez az alkonyat csak Pythonhoz érhető el.

Parancsokat biztosít a feladatok tevékenységértékeinek kihasználásához.

Ezzel az al segédprogrammal tetszőleges értékeket állíthat be és kérhet le egy feladat futtatása során. Ezeket az értékeket feladatértékeknek nevezzük. Az alsóbb rétegbeli tevékenységek tevékenységértékei ugyanabban a feladatfuttatásban érhetők el. Az azonosítókat és metrikákat, például egy gépi tanulási modell kiértékelési adatait kommunikálhatja a feladatfuttatás különböző tevékenységei között. Minden tevékenység több tevékenységértéket is beállíthat, lekérheti őket vagy mindkettőt. Minden tevékenységérték egyedi kulccsal rendelkezik ugyanazon a tevékenységen belül. Ezt az egyedi kulcsot a tevékenység értékének kulcsának nevezzük. A tevékenységérték a tevékenység nevével és a tevékenység értékének kulcsával érhető el.

Az alhatóság súgójának megjelenítéséhez futtassa a következőt dbutils.jobs.taskValues.help(): .

get command (dbutils.jobs.taskValues.get)

Feljegyzés

Ez a parancs csak Pythonhoz érhető el.

A Databricks Runtime 10.4 és korábbi verzióiban, ha get nem találja a feladatot, a Rendszer a Py4JJavaErrort emeli ki ahelyett, hogy egy ValueError.

Lekéri a megadott tevékenységérték tartalmát az aktuális feladatfuttatásban.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.jobs.taskValues.help("get").

Példa:

dbutils.jobs.taskValues.get(taskKey    = "my-task", \
                            key        = "my-key", \
                            default    = 7, \
                            debugValue = 42)

Az előző példában:

  • taskKey a tevékenység értékét beállítva tevékenység neve. Ha a parancs nem találja ezt a feladatot, megjelenik egy ValueError .
  • key a feladat értékének a set paranccsal (dbutils.jobs.taskValues.set) beállított kulcsának neve. Ha a parancs nem találja ennek a tevékenységértéknek a kulcsát, a rendszer felvesz egy ValueError értéket (hacsak nincs default megadva).
  • default egy nem kötelező érték, amely akkor lesz visszaadva, ha key nem található. default nem lehet None.
  • debugValue nem kötelező érték, amelyet akkor ad vissza a rendszer, ha egy feladaton kívül futó jegyzetfüzetből próbálja lekérni a feladat értékét. Ez akkor lehet hasznos a hibakeresés során, ha manuálisan szeretné futtatni a jegyzetfüzetet, és az alapértelmezett érték növelése TypeError helyett valamilyen értéket ad vissza. debugValue nem lehet None.

Ha egy feladaton kívül futó jegyzetfüzetből próbál feladatértéket lekérni, ez a parancs alapértelmezés szerint előhoz egy TypeError értéket. Ha azonban az debugValue argumentum meg van adva a parancsban, a függvény az érték értékét debugValue adja vissza ahelyett, hogy egy értéket emelne ki TypeError.

set command (dbutils.jobs.taskValues.set)

Feljegyzés

Ez a parancs csak Pythonhoz érhető el.

Tevékenységérték beállítása vagy frissítése. Egy feladatfuttatáshoz legfeljebb 250 tevékenységértéket állíthat be.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.jobs.taskValues.help("set").

Néhány példa:

dbutils.jobs.taskValues.set(key   = "my-key", \
                            value = 5)

dbutils.jobs.taskValues.set(key   = "my-other-key", \
                            value = "my other value")

Az előző példákban:

  • key a tevékenység értékének kulcsa. Ennek a kulcsnak egyedinek kell lennie a tevékenységhez. Vagyis ha két különböző tevékenység egy tevékenységértéket állít be kulccsal K, akkor két különböző tevékenységértékről van szó, amelyek ugyanazt a kulcsot Khasználják.
  • value a tevékenységérték kulcsának értéke. Ennek a parancsnak képesnek kell lennie az érték belső JSON formátumban való megjelenítésére. Az érték JSON-ábrázolásának mérete nem haladhatja meg a 48 KiB-t.

Ha egy feladaton kívül futó jegyzetfüzetből próbál feladatértéket beállítani, ez a parancs nem tesz semmit.

Könyvtár segédprogram (dbutils.library)

Az almodul legtöbb metódusa dbutils.library elavult. Lásd: Library segédprogram (dbutils.library) (örökölt).

Előfordulhat, hogy programozott módon újra kell indítania a Python-folyamatot az Azure Databricksben, hogy a helyileg telepített vagy frissített kódtárak megfelelően működjenek a Python-kernelben az aktuális SparkSession esetében. Ehhez futtassa a dbutils.library.restartPython parancsot. Lásd: A Python-folyamat újraindítása az Azure Databricksben.

Notebook segédprogram (dbutils.notebook)

Parancsok: kilépés, futtatás

A jegyzetfüzet segédprogram lehetővé teszi a jegyzetfüzetek összefűzéséhez és az eredményekhez való cselekvéshez. Lásd: Databricks-jegyzetfüzet futtatása egy másik jegyzetfüzetből.

Az elérhető parancsok listázásához futtassa a parancsot dbutils.notebook.help().

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.

exit command (dbutils.notebook.exit)

Kilép egy értékekkel rendelkező jegyzetfüzetből.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.notebook.help("exit").

Ez a példa kilép a jegyzetfüzetből az értékkel 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

Feljegyzés

Ha a futtatás olyan lekérdezéssel rendelkezik, amely a háttérben futó strukturált streameléssel rendelkezik, a hívás dbutils.notebook.exit() nem szakítja meg a futtatás befejezését. A futtatás addig folytatódik, amíg a lekérdezés a háttérben fut. A háttérben futó lekérdezés leállításához kattintson a Mégse gombra a lekérdezés cellájában, vagy futtassa a parancsotquery.stop(). Ha a lekérdezés leáll, a futtatás leállhat a következővel dbutils.notebook.exit(): .

run command (dbutils.notebook.run)

Futtat egy jegyzetfüzetet, és visszaadja a kilépési értékét. A jegyzetfüzet alapértelmezés szerint az aktuális fürtben fog futni.

Feljegyzés

A parancsból run visszaadott sztringérték maximális hossza 5 MB. Lásd: Egyetlen futtatás kimenetének lekérése (GET /jobs/runs/get-output).

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.notebook.help("run").

Ez a példa egy, a hívó jegyzetfüzetével azonos helyen lévő My Other Notebook jegyzetfüzetet futtat. A hívott jegyzetfüzet a kódsorra dbutils.notebook.exit("Exiting from My Other Notebook")végződik. Ha a hívott jegyzetfüzet nem fejeződik be 60 másodpercen belül, a rendszer kivételt jelez.

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

Titkos kulcsok segédprogram (dbutils.secrets)

Parancsok: get, getBytes, list, listScopes

A titkos kulcsok segédprogram lehetővé teszi a bizalmas hitelesítő adatok tárolását és elérését anélkül, hogy a jegyzetfüzetekben láthatóvá tenné őket. Lásd: Titkos kódok kezelése és a titkos kódok használata egy jegyzetfüzetben. Az elérhető parancsok listázásához futtassa a parancsot dbutils.secrets.help().

get(scope: String, key: String): String -> Gets the string representation of a secret value with scope and key
getBytes(scope: String, key: String): byte[] -> Gets the bytes representation of a secret value with scope and key
list(scope: String): Seq -> Lists secret metadata for secrets within a scope
listScopes: Seq -> Lists secret scopes

get command (dbutils.secrets.get)

Lekéri a megadott titkos kulcs hatókörének és kulcsának titkos értékének sztringképét.

Figyelmeztetés

Rendszergazda istratorok, titkos kódok létrehozói és az engedéllyel megadott felhasználók elolvashatják az Azure Databricks titkos kulcsait. Bár az Azure Databricks törekszik a jegyzetfüzetekben esetleg megjelenő titkos értékek újrakódosítására, nem lehet megakadályozni, hogy az ilyen felhasználók titkos kulcsokat olvasnak. További információ: Titkos kód újraválasztása.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.secrets.help("get").

Ez a példa lekéri a névvel ellátott my-scope hatókör és a névvel ellátott kulcs titkos értékének sztring-ábrázolását 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 parancs (dbutils.secrets.getBytes)

Lekéri a megadott hatókör és kulcs titkos értékének bájtos ábrázolását.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.secrets.help("getBytes").

Ez a példa lekéri a névvel ellátott my-scope hatókör és a névvel ellátott my-keykulcs titkos értékének bájtos ábrázolását (ebben a példábana1!b2@c3#).

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)

list parancs (dbutils.secrets.list)

A megadott hatókörben lévő titkos kódok metaadatait sorolja fel.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.secrets.help("list").

Ez a példa a névvel ellátott my-scopehatókör titkos kulcsainak metaadatait sorolja fel.

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 parancs (dbutils.secrets.listScopes)

Az elérhető hatókörök listája.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.secrets.help("listScopes").

Ez a példa az elérhető hatóköröket sorolja fel.

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 segédprogram (dbutils.widgets)

Parancsok: kombinált lista, legördülő lista, get, getArgument, multiselect, remove, removeAll, text

A widgetek segédprogram lehetővé teszi a jegyzetfüzetek paraméterezését. Lásd a Databricks-vezérlőket.

Az elérhető parancsok listázásához futtassa a parancsot dbutils.widgets.help().

combobox(name: String, defaultValue: String, choices: Seq, label: String): void -> Creates a combobox input widget with a given name, default value and choices
dropdown(name: String, defaultValue: String, choices: Seq, label: String): void -> Creates a dropdown input widget a with given name, default value and choices
get(name: String): String -> Retrieves current value of an input widget
getArgument(name: String, optional: String): String -> (DEPRECATED) Equivalent to get
multiselect(name: String, defaultValue: String, choices: Seq, label: String): void -> Creates a multiselect input widget with a given name, default value and choices
remove(name: String): void -> Removes an input widget from the notebook
removeAll: void -> Removes all widgets in the notebook
text(name: String, defaultValue: String, label: String): void -> Creates a text input widget with a given name and default value

combobox parancs (dbutils.widgets.combobox)

Létrehoz és megjelenít egy kombinált lista widgetet a megadott programozott névvel, alapértelmezett értékkel, választási lehetőségekkel és opcionális címkével.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("combobox").

Ez a példa egy programozott nevű fruits_comboboxkombinált lista widgetet hoz létre és jelenít meg. Lehetőséget kínál , applebananacoconutés dragon fruit a kezdeti értékre bananavan állítva. Ez a kombinált lista widget egy kísérő címkével Fruitsrendelkezik. Ez a példa a kombinált lista widget kezdeti értékének nyomtatásával fejeződik be. 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

dropdown parancs (dbutils.widgets.dropdown)

Létrehoz és megjelenít egy legördülő vezérlőt a megadott programozott névvel, alapértelmezett értékkel, választási lehetőségekkel és opcionális címkével.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("dropdown").

Ez a példa egy programozott nevű toys_dropdownlegördülő vezérlőt hoz létre és jelenít meg. Lehetőséget kínál , alphabet blocksbasketballcapeés doll a kezdeti értékre basketballvan állítva. Ez a legördülő vezérlő egy kísérő címkével Toysrendelkezik. Ez a példa a legördülő vezérlő kezdeti értékének nyomtatásával fejeződik be. 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

get command (dbutils.widgets.get)

Lekéri a widget aktuális értékét a megadott programozott névvel. Ez a programozott név a következő lehet:

  • Egy egyéni widget neve a jegyzetfüzetben, például fruits_combobox vagy toys_dropdown.
  • A jegyzetfüzetnek egy jegyzetfüzetfeladat részeként átadott egyéni paraméter neve, például nameagevagy . További információkért tekintse meg a jegyzetfüzet-tevékenységek paramétereinek lefedettségét a Feladat létrehozása felhasználói felületen, vagy az notebook_params Új feladatfuttatás (POST /jobs/run-now) művelet aktiválása a Feladatok API-ban mezőben.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("get").

Ez a példa a programozott nevű fruits_comboboxwidget értékét adja meg.

Python

dbutils.widgets.get('fruits_combobox')

# banana

R

dbutils.widgets.get('fruits_combobox')

# [1] "banana"

Scala

dbutils.widgets.get("fruits_combobox")

// res6: String = banana

Ez a példa a programozott nevet agetartalmazó jegyzetfüzet-tevékenységparaméter értékét adja meg. Ez a paraméter a 35 kapcsolódó jegyzetfüzet-feladat futtatásakor lett beállítva.

Python

dbutils.widgets.get('age')

# 35

R

dbutils.widgets.get('age')

# [1] "35"

Scala

dbutils.widgets.get("age")

// res6: String = 35

getArgument parancs (dbutils.widgets.getArgument)

Lekéri a widget aktuális értékét a megadott programozott névvel. Ha a widget nem létezik, opcionális üzenet küldhető vissza.

Feljegyzés

Ez a parancs elavult. Ehelyett használja a dbutils.widgets.get parancsot .

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("getArgument").

Ez a példa a programozott nevű fruits_comboboxwidget értékét adja meg. Ha ez a widget nem létezik, a rendszer visszaadja az üzenetet 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 parancs (dbutils.widgets.multiselect)

Létrehoz és megjelenít egy több kijelölési vezérlőt a megadott programozott névvel, alapértelmezett értékkel, választási lehetőségekkel és opcionális címkével.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("multiselect").

Ez a példa létrehoz és megjelenít egy programozott nevű days_multiselecttöbbkijeles vezérlőt. A választási lehetőségeket Monday a Sunday rendszer a kezdeti értékre állítja Tuesdaybe. Ez a multiselect widget egy kísérő címkével Days of the Weekrendelkezik. Ez a példa a multiselect widget Tuesdaykezdeti értékének nyomtatásával fejeződik be.

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

remove command (dbutils.widgets.remove)

Eltávolítja a widgetet a megadott programozott névvel.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("remove").

Fontos

Ha egy vezérlő eltávolítására vonatkozó parancsot ad hozzá, nem adhat hozzá egy következő parancsot, hogy ugyanabban a cellában hozzon létre widgetet. A widgetet egy másik cellában kell létrehoznia.

Ez a példa eltávolítja a programozott nevű widgetet fruits_combobox.

Python

dbutils.widgets.remove('fruits_combobox')

R

dbutils.widgets.remove('fruits_combobox')

Scala

dbutils.widgets.remove("fruits_combobox")

removeAll parancs (dbutils.widgets.removeAll)

Eltávolítja az összes widgetet a jegyzetfüzetből.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("removeAll").

Fontos

Ha az összes widget eltávolítására vonatkozó parancsot ad hozzá, nem adhat hozzá további parancsot, hogy egyetlen vezérlőt sem hozzon létre ugyanabban a cellában. A widgeteket egy másik cellában kell létrehoznia.

Ez a példa eltávolítja az összes widgetet a jegyzetfüzetből.

Python

dbutils.widgets.removeAll()

R

dbutils.widgets.removeAll()

Scala

dbutils.widgets.removeAll()

szöveg parancs (dbutils.widgets.text)

Létrehoz és megjelenít egy szöveg widgetet a megadott programozott névvel, alapértelmezett értékkel és opcionális címkével.

A parancs súgójának megjelenítéséhez futtassa a parancsot dbutils.widgets.help("text").

Ez a példa egy programozott nevű your_name_textszöveg widgetet hoz létre és jelenít meg. A beállítás a kezdeti értékre Enter your namevan állítva. Ez a szöveg widget egy kísérő címkével Your namerendelkezik. Ez a példa a szöveg widget kezdeti értékének nyomtatásával fejeződik be. 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

Databricks Utilities API-kódtár

Fontos

A Databricks Utilities API (dbutils-api) kódtár elavult. Bár ez a tár továbbra is elérhető, a Databricks nem tervez új funkciót a dbutils-api tárhoz.

A Databricks a következő kódtárak egyikének használatát javasolja:

Az alkalmazásfejlesztés felgyorsítása érdekében hasznos lehet az alkalmazások fordítása, összeállítása és tesztelése, mielőtt éles feladatként üzembe helyezené őket. Annak érdekében, hogy a Databricks segédprogramok segítségével fordíthasson, a Databricks biztosítja a tárat dbutils-api . A kódtárat letöltheti a dbutils-apiDBUtils API webhelyéről a Maven-adattár webhelyén, vagy hozzáadhatja a tárat egy függőség hozzáadásával a buildfájlhoz:

  • 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'
    

Cserélje le TARGET a kívánt célra (például 2.12) és VERSION a kívánt verzióra (például 0.0.5). Az elérhető célok és verziók listájáért tekintse meg a DBUtils API weboldalát a Maven-adattár webhelyén.

Miután ezt a tárat építette az alkalmazáshoz, üzembe helyezheti az alkalmazást.

Fontos

A dbutils-api kódtár lehetővé teszi, hogy helyileg lefordítson egy alkalmazást, amely használja dbutils, de nem futtatja. Az alkalmazás futtatásához üzembe kell helyeznie az Azure Databricksben.

Korlátozások

A végrehajtókon belüli hívás dbutils váratlan eredményeket eredményezhet, vagy hibákat eredményezhet.

Ha fájlrendszerműveleteket kell futtatnia a végrehajtókon, dbutilsszámos gyorsabb és méretezhetőbb alternatíva érhető el:

A végrehajtókkal kapcsolatos információkért tekintse meg a fürtmód áttekintését az Apache Spark webhelyén.