Databricks-segédprogramok

A Databricks segédprogramjai ( ) megkönnyítik a dbutils feladatok hatékony kombinációinak elvégzését. A segédprogramokkal hatékonyan dolgozhat objektumtárolással, jegyzetfüzeteket láncolhat és paraméteresíthet, valamint titkos adatokat használhat. dbutils A nem támogatott a notebookon kívül.

Fontos

A dbutils végrehajtókban való hívás váratlan eredményeket okozhat. A korlátozásokkal és a használható alternatív megoldásokkal kapcsolatos további információkért lásd: dbutilsdbutils

dbutils A segédprogramok Python-, R- és Scala-jegyzetfüzetben érhetők el.

How to: List utilities, list commands, display command help

Segédprogramok:data, fs, kódtár,jegyzetfüzet,titkoskulcsok, widgetek,Utilities API-kódtár

Az elérhető segédprogramok listája

Az elérhető segédprogramok felsorolásához és az egyes segédprogramok rövid leírásához futtassa a dbutils.help() következőt: Python vagy Scala.

Ez a példa felsorolja a Databricks segédprogramjaihoz elérhető parancsokat.

Python

dbutils.help()

Scala

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

fs: DbfsUtils -> Manipulates the Databricks filesystem (DBFS) from the console
library: LibraryUtils -> Utilities for session isolated libraries
notebook: NotebookUtils -> Utilities for the control flow of a notebook (EXPERIMENTAL)
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ő parancsának felsorolása

Az adott segédprogramhoz elérhető parancsok felsorolásához és az egyes parancsok rövid leírásához futtassa a parancsot a segédprogram .help() programozott neve után.

Ez a példa felsorolja a Databricks fájlrendszer (DBFS) segédprogramhoz elérhető parancsokat.

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

Súgó megjelenítése parancshoz

Ha segítségre van szüksége egy parancshoz, futtassa a .help("<command-name>") parancsot 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.

Megjegyzés

A 9.0-s Databricks Runtime érhető el.

Parancsok:összegzés

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

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 parancs (dbutils.data.summarize)

Kiszámítja és megjeleníti egy Apache Spark DataFrame vagy pandas DataFrame összegzési statisztikáit. Ez a parancs Python, Scala és R környezetben érhető el.

A parancs súgóját a parancs futtatásával jelenítse dbutils.data.help("summarize") meg.

A Databricks Runtime 10.1-es vagy újabb használata esetén a további paraméterrel módosíthatja a kiszámított precise statisztikák pontosságát.

Megjegyzés

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

  • Ha a (alapértelmezett) false (hamis) érték van beállítva, néhány visszaadott statisztika közelítéseket tartalmaz a precise futási idő csökkentéséhez.
    • A kategorikus oszlopok eltérő értékeinek száma a nagy számosságú oszlopok esetén ~5%-os relatív hibát okozhat.
    • A gyakori értékszámok akár 0,01%-os hibát is okozhatnak, 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ámhoz viszonyítva.
  • Ha precise a true (igaz) érték van beállítva, a statisztikák kiszámítása nagyobb pontossággal történik. A hisztogramok és a numerikus oszlopok percentilisei kivételével az összes statisztika már pontos.
    • A hisztogramok és a percentilisbecslések akár 0,0001%-os hibát is okozhatnak a sorok teljes számhoz viszonyítva.

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

Ez a példa egy adatkeret összegző statisztikáit Apache Spark alapértelmezetten engedélyezett közelítésekkel. Az eredmények eléréséhez futtassa ezt a parancsot egy jegyzetfüzetben. Ez a példa a következő Azure Databricks 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)

Fájlrendszer-segédprogram (dbutils.fs)

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

A fájlrendszer-segédprogrammal hozzáférhet a Databricks fájlrendszerhez (DBFS),így könnyebben használhatja Azure Databricks fájlrendszerként. Az elérhető parancsok listához futtassa a dbutils.fs.help() parancsot.

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

cp parancs (dbutils.fs.cp)

Átmásol egy fájlt vagy könyvtárat, esetleg a fájlrendszerek között.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("cp") meg.

Ez a példa átmásolja a nevű fájlt a fájlba, és a másolt fájlt a következőre old_file.txt/FileStore/tmp/new nevezi new_file.txt át: .

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 parancs (dbutils.fs.head)

Legfeljebb az adott fájl megadott maximális számbájtszámát adja vissza. A bájtok UTF-8 kódolású sztringként vannak visszaadva.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("head") meg.

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

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 listázza.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("ls") meg.

Ez a példa a tartalmával kapcsolatos információkat jeleníti /tmp meg.

Python

dbutils.fs.ls("/tmp")

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

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

Scala

dbutils.fs.ls("/tmp")

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

mkdirs parancs (dbutils.fs.mkdirs)

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

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("mkdirs") meg.

Ez a példa a könyvtárstruktúrát hozza létre a /parent/child/grandchild/tmp fájlban.

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

mount parancs (dbutils.fs.mount)

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

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("mount") meg.

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 Blob Storage-ban talál.

mounts parancs (dbutils.fs.mounts)

Információkat jelenít meg a DBFS-ben jelenleg csatlakoztatott adatokról.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("mounts") meg.

Python

dbutils.fs.mounts()

Scala

dbutils.fs.mounts()

További példakódokért lásd: Azure Blob Storage.

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 fájlrendszeren belüli áthelyezések is.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("mv") meg.

Ebben a példában a fájlt a my_file.txt rendszerről a következőre /FileStore/tmp/parent/child/granchild mozgatja: .

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)

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

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("put") meg.

Ez a példa egy nevű fájlba Hello, Databricks! írja a sztringet a hello_db.txt/tmp fájlban. Ha a fájl létezik, felül lesz írva.

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, hogy a legfrissebb információkat kapják meg.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("refreshMounts") meg.

Python

dbutils.fs.refreshMounts()

Scala

dbutils.fs.refreshMounts()

További példákat az Azure Blob Storage-ban talál.

rm parancs (dbutils.fs.rm)

Eltávolít egy fájlt vagy könyvtárat.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("rm") meg.

Ez a példa eltávolítja a nevű fájlt hello_db.txt a /tmp fájlból.

Python

dbutils.fs.rm("/tmp/hello_db.txt")

# Out[8]: True

R

dbutils.fs.rm("/tmp/hello_db.txt")

# [1] TRUE

Scala

dbutils.fs.rm("/tmp/hello_db.txt")

// res6: Boolean = true

unmount parancs (dbutils.fs.unmount)

Töröl egy DBFS csatlakoztatási pontot.

A parancs súgóját a parancs futtatásával jelenítse dbutils.fs.help("unmount") meg.

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

További példakódokért lásd: Azure Blob Storage.

Kódtár segédprogram (dbutils.library)

Megjegyzés

A kódtár segédprogram elavult.

Parancsok:install, installPyPI, list,restartPython, updateCondaEnv

A kódtár-segédprogrammal Python-kódtárakat telepíthet, és létrehozhat egy jegyzetfüzet-munkamenetre vonatkozó környezetet. A kódtárak az illesztőn és a végrehajtón is elérhetők, így a felhasználó által megadott függvények között hivatkozhat rájuk. Ez a következőt teszi lehetővé:

  • A jegyzetfüzet könyvtárfüggőségeit magában a jegyzetfüzetben kell szervezni.
  • A különböző kódtárfüggőségekkel nem interferencia nélküli fürtök megosztásához jegyzetfüzet-felhasználók.

A jegyzetfüzet leválasztása megsemmisíti ezt a környezetet. Azonban újra létrehozhatja, ha újra futtatja a kódtár install API-parancsokat a jegyzetfüzetben. Tekintse meg az API-t a notebook állapotának a környezet elvesztése restartPython nélküli alaphelyzetbe állításához.

Fontos

A kódtár segédprogramjai nem érhetők el Databricks Runtime ML Genomics Databricks Runtime-ben. Ehelyett tekintse meg a jegyzetfüzet-hatókörrel kapcsolatos Python-kódtárakat.

A Databricks Runtime 7.2-es vagy azt használó alkalmazások esetén a Databricks a magic parancsok használatát javasolja a %pip jegyzetfüzet-hatókörű kódtárak telepítéséhez. Lásd: Jegyzetfüzet-hatókörön belüli Python-kódtárak.

A kódtári segédprogramok alapértelmezés szerint engedélyezve vannak. Ezért alapértelmezés szerint az egyes jegyzetfüzetek Python-környezetét külön Python-végrehajtható fájl választja el, amely akkor jön létre, amikor a jegyzetfüzet csatlakoztatva van a fürtön, és örökli az alapértelmezett Python-környezetet. Az init szkripttel a Azure Databricks Python-környezetbe telepített kódtárak továbbra is elérhetők. Ezt a funkciót a beállításával spark.databricks.libraryIsolation.enabled tilthatja false le.

Ez az API kompatibilis a meglévő fürtre kiterjedő kódtár telepítésével a felhasználói felületen és aREST API. Az EZZEL az API-val telepített kódtárak magasabb prioritást élveznek, mint a fürtre kiterjedő kódtárak.

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

install(path: String): boolean -> Install the library within the current notebook session
installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean -> Install the PyPI library within the current notebook session
list: List -> List the isolated libraries added for the current notebook session via dbutils
restartPython: void -> Restart python process for the current notebook session
updateCondaEnv(envYmlContent: String): boolean -> Update the current notebook's Conda environment based on the specification (content of environment

install parancs (dbutils.library.install)

A könyvtár elérési útjának megadva a telepíti az adott kódtárat az aktuális jegyzetfüzet-munkamenetben. A parancs hívása által telepített kódtárak csak az aktuális jegyzetfüzet számára érhetők el.

A parancs súgóját a parancs futtatásával jelenítse dbutils.library.help("install") meg.

Ez a példa egy vagy egy .egg.whl kódtárat telepít egy jegyzetfüzetben.

Fontos

A Databricks azt javasolja, hogy helyezze az összes kódtártelepítési parancsot a jegyzetfüzet első cellájába, és hívja meg a függvényt a cella restartPython végére. A Python-jegyzetfüzet állapota a futtatása után alaphelyzetbe áll; a jegyzetfüzet minden állapotot elveszít, többek között a helyi változókat, az importált kódtárakat és az egyéb rövid futási restartPython állapotokat is. Ezért azt javasoljuk, hogy telepítsen kódtárakat, és állítsa alaphelyzetbe a jegyzetfüzet állapotát az első jegyzetfüzetcellában.

Az elfogadott kódtár-források a dbfs , a , a és a abfssadlwasbs .

dbutils.library.install("abfss:/path/to/your/library.egg")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.install("abfss:/path/to/your/library.whl")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

Megjegyzés

A használatával közvetlenül telepíthet egyéni %pip kerekfájlokat. A következő példában feltételezzük, hogy feltöltötte a kódtárkerékfájlt a DBFS-be:

%pip install /dbfs/path/to/your/library.whl

A pip nem támogatja a képfájlokat, és a wheel a Python build- és bináris csomagolási szabványa. További részletek: Wheel vs Egg. Ha azonban egy, a rendszerrel kompatibilis módon szeretne használni egy padot, használja a %pip következő megkerülő megoldást:

# This step is only needed if no %pip commands have been run yet.
# It will trigger setting up the isolated notebook environment
%pip install <any-lib>  # This doesn't need to be a real library; for example "%pip install any-lib" would work
import sys
# Assuming the preceding step was completed, the following command
# adds the egg file to the current notebook environment
sys.path.append("/local/path/to/library.egg")

installPyPI parancs (dbutils.library.installPyPI)

A Python Package Index (PyPI) csomaggal telepítse a csomagot az aktuális jegyzetfüzet-munkamenetben. A parancs hívása által telepített kódtárak el vannak különítve a jegyzetfüzetek között.

A parancs súgóját a parancs futtatásával jelenítse dbutils.library.help("installPyPI") meg.

Ez a példa egy PyPI-csomagot telepít egy jegyzetfüzetbe. versionA repo , és nem extras kötelező. A argumentum extras használatával adja meg az extras (további követelmények).

dbutils.library.installPyPI("pypipackage", version="version", repo="repo", extras="extras")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

Fontos

A version és a kulcs nem lehet a extras PyPI-csomag sztring része. Például: dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0") nem érvényes. A és a argumentum használatával adja meg a verziót, és adja meg versionextras az adatokat az alábbiak szerint:

dbutils.library.installPyPI("azureml-sdk", version="1.19.0", extras="databricks")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

Megjegyzés

Ha a dbutils.library.installPyPI parancsokat parancsokra %pip cseréli, a Python-értelmező automatikusan újraindul. A telepítési parancsot a következőképpen futtathatja:

%pip install azureml-sdk[databricks]==1.19.0

Ez a példa az egyik jegyzetfüzetben megadja a kódtárra vonatkozó követelményeket, és a használatával telepíti %run őket a másikban. Ehhez először definiálja a notebookba telepíteni kívánt kódtárakat. Ez a példa egy nevű jegyzetfüzetet InstallDependencies használ.

dbutils.library.installPyPI("torch")
dbutils.library.installPyPI("scikit-learn", version="1.19.1")
dbutils.library.installPyPI("azureml-sdk", extras="databricks")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

Ezután telepítse őket a jegyzetfüzetbe, amely ezeket a függőségeket szükség van rá.

%run /path/to/InstallDependencies # Install the dependencies in the first cell.
import torch
from sklearn.linear_model import LinearRegression
import azureml
...

Ez a példa visszaállítja a Python-jegyzetfüzet állapotát a környezet fenntartása közben. Ez a technika csak Python-jegyzetfüzetek esetén érhető el. Ezzel a technikával például újra betöltheti a kódtárakat, Azure Databricks más verzióval előre telepített kódtárakat:

dbutils.library.installPyPI("numpy", version="1.15.4")
dbutils.library.restartPython()
# Make sure you start using the library in another cell.
import numpy

Ezzel a technikával olyan kódtárakat is telepíthet, mint például a tensorflow, amelyek az indításkor betöltődnek:

dbutils.library.installPyPI("tensorflow")
dbutils.library.restartPython()
# Use the library in another cell.
import tensorflow

list parancs (dbutils.library.list)

Felsorolja az aktuális jegyzetfüzet-munkamenethez a kódtár segédprogramján keresztül hozzáadott izolált kódtárakat. Ez nem vonatkozik a fürthöz csatolt kódtárakra.

A parancs súgóját a parancs futtatásával jelenítse dbutils.library.help("list") meg.

Ez a példa felsorolja a jegyzetfüzetbe telepített kódtárakat.

dbutils.library.list()

Megjegyzés

Ennek a parancsnak a megfelelője a %pip használatával:

%pip freeze

restartPython parancs (dbutils.library.restartPython)

Újraindítja a Python-folyamatot az aktuális jegyzetfüzet-munkamenethez.

A parancs súgóját a parancs futtatásával jelenítse dbutils.library.help("restartPython") meg.

Ez a példa újraindítja az aktuális jegyzetfüzet-munkamenet Python-folyamatát.

dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

updateCondaEnv parancs (dbutils.library.updateCondaEnv)

Frissíti az aktuális jegyzetfüzet Conda-környezetét a tartalma environment.yml alapján. Ez a módszer csak a Condán Databricks Runtime támogatott.

A parancs súgóját a parancs futtatásával jelenítse dbutils.library.help("updateCondaEnv") meg.

Ez a példa frissíti az aktuális jegyzetfüzet Conda-környezetét a megadott specifikáció tartalma alapján.

dbutils.library.updateCondaEnv(
"""
channels:
  - anaconda
dependencies:
  - gensim=3.4
  - nltk=3.4
""")

Jegyzetfüzet segédprogram (dbutils.notebook)

Parancsok:kilépés,futtatás

A jegyzetfüzet-segédprogrammal jegyzetfüzeteket láncolhatja össze, és az eredmények alapján cselekedve. Lásd: Jegyzetfüzet-munkafolyamatok.

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

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 parancs (dbutils.notebook.exit)

Kilép egy értékkel megadott jegyzetfüzetből.

A parancs súgóját a parancs futtatásával jelenítse dbutils.notebook.help("exit") meg.

Ez a példa a következő értékkel kilép a Exiting from My Other Notebook jegyzetfüzetből: .

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

run parancs (dbutils.notebook.run)

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

Megjegyzés

A parancs által visszaadott sztringérték maximális hossza run 5 MB. Lásd: Egyetlen futtatás kimenetének lekért kimenete ( ).

A parancs súgóját a parancs futtatásával jelenítse dbutils.notebook.help("run") meg.

Ez a példa egy nevű jegyzetfüzetet futtat a hívó My Other Notebook jegyzetfüzettel azonos helyen. Az úgynevezett jegyzetfüzet a kódsorra dbutils.notebook.exit("Exiting from My Other Notebook") végződik. Ha a nevű jegyzetfüzet nem fut le 60 másodpercen belül, a rendszer kivételt ad vissza.

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édprogramja lehetővé teszi bizalmas hitelesítő adatok tárolására és elérésére anélkül, hogy a jegyzetfüzetekben láthatóvá tegye őket. Lásd: Titkos kulcsok kezelése és Titkos kulcsok használata jegyzetfüzetben. Az elérhető parancsok listához futtassa a dbutils.secrets.help() parancsot.

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

Lekérte a megadott titkoskulcs-hatókör és -kulcs titkos kulcsának sztringre vonatkozó reprezentációját.

Figyelmeztetés

A rendszergazdák, a titkos kulcsok létrehozói és az engedéllyel rendelkező felhasználók olvashatják Azure Databricks titkos okat. Bár Azure Databricks a jegyzetfüzetek titkos értékeinek kiíratása mellett tesz erőfeszítéseket, nem akadályozható meg, hogy az ilyen felhasználók titkos okat olvassanak be. További információkért lásd: Titkos adatátfedés.

A parancs súgóját a parancs futtatásával jelenítse dbutils.secrets.help("get") meg.

Ebben a példában lekértük a nevű hatókör és a nevű kulcs titkos értékének sztringes my-scopemy-key ábrázolásait.

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érte a megadott hatókör és kulcs titkos értékének bájtos reprezentációját.

A parancs súgóját a parancs futtatásával jelenítse dbutils.secrets.help("getBytes") meg.

Ez a példa a nevű hatókör és a nevű kulcs titkos kulcsát a1!b2@c3# () my-scope kapja my-key meg.

Python

my_secret = dbutils.secrets.getBytes(scope="my-scope", key="my-key")
my_secret.decode("utf-8")

# Out[1]: 'a1!b2@c3#'

R

my_secret = dbutils.secrets.getBytes(scope="my-scope", key="my-key")
print(rawToChar(my_secret))

# [1] "a1!b2@c3#"

Scala

val mySecret = dbutils.secrets.getBytes(scope="my-scope", key="my-key")
val convertedString = new String(mySecret)
println(convertedString)

// a1!b2@c3#
// mySecret: Array[Byte] = Array(97, 49, 33, 98, 50, 64, 99, 51, 35)
// convertedString: String = a1!b2@c3#

list parancs (dbutils.secrets.list)

Felsorolja a titkos kulcsok metaadatait a megadott hatókörben.

A parancs súgóját a parancs futtatásával jelenítse dbutils.secrets.help("list") meg.

Ez a példa felsorolja a nevű hatókörben található titkos kulcsok my-scope metaadatait.

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 felsorolása.

A parancs súgóját a parancs futtatásával jelenítse dbutils.secrets.help("listScopes") meg.

Ebben a példában az elérhető hatókörök vannak felsorolva.

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

Widgetek segédprogram (dbutils.widgets)

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

A widgetek segédprogrammal paraméteres notebookokat lehet paraméteresíteni. Lásd: Widgetek.

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

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

kombinált lista parancs (dbutils.widgets.combobox)

Létrehoz és megjelenít egy kombinált 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át a parancs futtatásával jelenítse dbutils.widgets.help("combobox") meg.

Ez a példa egy kombinált vezérlőt hoz létre és jelenít meg a programozott fruits_combobox névvel. A , , és lehetőségeket a kezdeti értékével applebanana adja coconutdragon fruitbanana meg. Ez a kombinált lista widget egy címkével Fruits rendelkezik. Ez a példa úgy ér véget, hogy kinyomtatjuk a kombinált lista widgetének kezdeti banana értékét.

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

legördülő 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át a parancs futtatásával jelenítse dbutils.widgets.help("dropdown") meg.

Ez a példa létrehoz és megjelenít egy legördülő vezérlőt a programozott toys_dropdown névvel. A , , és lehetőségeket a kezdeti értékével alphabet blocksbasketball adja capedollbasketball meg. Ez a legördülő vezérlő egy címkével Toys rendelkezik. Ez a példa a legördülő vezérlő kezdeti értékének () nyomtatásával ér basketball véget.

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 parancs (dbutils.widgets.get)

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

  • Egy egyéni vezérlő neve a jegyzetfüzetben, például fruits_combobox vagy toys_dropdown .
  • A jegyzetfüzetnek egy jegyzetfüzet-feladat részeként átadott egyéni paraméter neve, például name vagy age . További információé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 Új feladat futtatásának aktiválása ( ) művelet mezőben a Jobs API-ban.

A parancs súgóját a parancs futtatásával jelenítse dbutils.widgets.help("get") meg.

Ez a példa a programozott nevű widget értékét kapja fruits_combobox 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 nevű jegyzetfüzet-feladat paraméterének értékét kapja age meg. Ez a paraméter a következőre lett 35 beállítva: a kapcsolódó jegyzetfüzet-feladat futtatásakor.

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érte a widget aktuális értékét a megadott programozott névvel. Ha a widget nem létezik, nem kötelező üzenetet kaphat.

Megjegyzés

Ez a parancs elavult. Használja helyette a dbutils.widgets.get használhatja.

A parancs súgóját a parancs futtatásával jelenítse dbutils.widgets.help("getArgument") meg.

Ez a példa a programozott nevű widget értékét kapja fruits_combobox meg. Ha ez a widget nem létezik, a rendszer Error: Cannot find fruits combobox visszaadja az üzenetet.

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öbbszörös kijelölésű 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át a parancs futtatásával jelenítse dbutils.widgets.help("multiselect") meg.

Ez a példa létrehoz és megjelenít egy többválasztásos vezérlőt a programozott days_multiselect névvel. A segítségével kínál választási Monday lehetőségeket, és a kezdeti Sunday értékre van Tuesday beállítva. Ez a többszörös kijelölésű widget egy hozzá tartozó címkével Days of the Week rendelkezik. Ez a példa úgy ér véget, hogy kinyomtatjuk a többszörös kijelölésű widget kezdeti értékét ( 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

remove parancs (dbutils.widgets.remove)

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

A parancs súgóját a parancs futtatásával jelenítse dbutils.widgets.help("remove") meg.

Fontos

Ha hozzáad egy vezérlő eltávolítására vonatkozó parancsot, nem adhat hozzá újabb parancsot, amely egy widgetet hoz létre ugyanabban a cellában. A widgetet egy másik cellában kell létrehoznia.

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

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át a parancs futtatásával jelenítse dbutils.widgets.help("removeAll") meg.

Fontos

Ha hozzáad egy parancsot az összes widget eltávolításához, nem adhat hozzá újabb parancsot, amely egyetlen cellában hozza létre a widgeteket. 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()

text parancs (dbutils.widgets.text)

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

A parancs súgóját a parancs futtatásával jelenítse dbutils.widgets.help("text") meg.

Ez a példa létrehoz és megjelenít egy szöveges vezérlőt a programozott your_name_text névvel. Ez a kezdeti értékre van Enter your name beállítva. Ez a szöveges widget egy hozzá tartozó címkével Your name rendelkezik. Ez a példa a szöveges widget kezdeti értékének kinyomtatásával ér Enter your name véget.

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

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 helyezne alkalmazásokat. A Databricks-segédprogramok fordításának engedélyezéséhez a Databricks biztosítja a dbutils-api kódtárat. A kódtárat a Maven-adattár webhelyén található dbutils-apidbutils-api weblapról töltheti le, vagy egy függőség a buildfájlhoz való hozzáadásával foglalhatja bele:

  • 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 a helyére a kívánt célt (például ) és a helyére TARGET2.12 a kívánt verziót VERSION0.0.5 (például: ). Az elérhető célok és verziók listáját a Maven-adattár webhelyén, a DBUtils API webhelyén talál.

Miután felépíti az alkalmazást erre a kódtárra, üzembe helyezheti az alkalmazást.

Fontos

A kódtár lehetővé teszi egy olyan alkalmazás helyi fordítását, amely a t dbutils-apidbutils használja, de nem futtatja azt. Az alkalmazás futtatásához üzembe kell helyeznie az Azure Databricks.

Korlátozások

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

Ha fájlrendszerműveleteket kell futtatnia a végrehajtókon a használatával, több gyorsabb és skálázhatóbb alternatíva dbutils áll rendelkezésre:

A végrehajtókkal kapcsolatos információkért lásd a fürt üzemmód áttekintését a Apache Spark webhelyén.