Utilidades de Databricks
Las utilidades de Databricks (dbutils
) facilitan la realización de combinaciones eficaces de tareas. Puede usar las utilidades para trabajar con el almacenamiento de objetos de forma eficaz, para encadenar y parametrizar cuadernos y para trabajar con secretos. Las utilidades dbutils
no se admiten fuera de los cuadernos.
Importante
Llamar a dbutils
dentro de los ejecutores puede producir resultados inesperados. Para más información sobre las limitaciones de dbutils
y las alternativas que se podrían usar en su lugar, consulte Limitaciones.
Las utilidades dbutils
están disponibles en cuadernos de Python, R y Scala.
Cómo: enumerar las utilidades, enumerar los comandos, mostrar la ayuda para los comandos
Utilidades: datos, sistema de archivos, trabajos, biblioteca, cuaderno, secretos, widgets, Biblioteca de la API de utilidades
Enumeración de las utilidades disponibles
Para enumerar las utilidades disponibles junto con una breve descripción de cada una de ellas, ejecute dbutils.help()
para Python o Scala.
En este ejemplo se enumeran los comandos disponibles para las utilidades de Databricks.
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
jobs: JobsUtils -> Utilities for leveraging jobs features
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
Enumeración de los comandos disponibles para una utilidad
A fin de enumerar los comandos disponibles para una utilidad junto con una breve descripción de cada uno de ellos, ejecute .help()
después del nombre de programación de la utilidad.
En este ejemplo se enumeran los comandos disponibles para la utilidad del sistema de archivos de Databricks (DBFS).
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
Visualización de ayuda para un comando
A fin de mostrar la ayuda para un comando, ejecute .help("<command-name>")
después del nombre del comando.
En este ejemplo se muestra la ayuda para el comando de copia de DBFS.
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
Utilidad de datos (dbutils.data)
Importante
Esta característica está en versión preliminar pública.
Nota
Disponible en Databricks Runtime 9.0 y versiones posteriores.
Comandos: summarize
La utilidad de datos permite comprender e interpretar conjuntos de datos. Para enumerar los comandos disponibles, ejecute 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
Comando summarize (dbutils.data.summarize)
Calcula y muestra estadísticas de resumen de un DataFrame de Apache Spark o un DataFrame de Pandas. Este comando está disponible para Python, Scala y R.
A fin de mostrar la ayuda para este comando, ejecute dbutils.data.help("summarize")
.
En Databricks Runtime 10.1 y versiones posteriores, puede usar el parámetro precise
adicional para ajustar la precisión de las estadísticas calculadas.
Nota:
Esta característica está en versión preliminar pública.
- Cuando
precise
se establece en False (valor predeterminado), algunas estadísticas devueltas incluyen aproximaciones para reducir el tiempo de ejecución.- El número de valores distintos para las columnas de categorías puede tener un error relativo de ~5 % para las columnas de alta cardinalidad.
- Los recuentos de valores frecuentes pueden tener un error de hasta el 0,01 % cuando el número de valores distintos es mayor que 10 000.
- Las estimaciones de percentil y los histogramas pueden tener un error de hasta un 0,01 % con respecto al número total de filas.
- Cuando
precise
se establece en True, las estadísticas se calculan con mayor precisión. Ahora todas las estadísticas, excepto los histogramas y percentiles de las columnas numéricas, son exactas.- Las estimaciones de percentil y los histogramas pueden tener un error de hasta un 0,0001 % con respecto al número total de filas.
La información sobre herramientas de la parte superior de la salida de resumen de datos indica el modo de ejecución actual.
En este ejemplo se muestran estadísticas de resumen de un DataFrame de Apache Spark con aproximaciones habilitadas de manera predeterminada. Para ver los resultados, ejecute este comando en un cuaderno. Este ejemplo se basa en conjuntos de datos de ejemplo.
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)
Tenga en cuenta que la visualización usa la notación del sistema internacional para representar de forma concisa valores numéricos menores que 0,01 o mayores que 10 000. Por ejemplo, el valor numérico 1.25e-15
se representará como 1.25f
. Una excepción: la visualización usa "B
" para 1.0e9
(giga) en lugar de "G
".
Utilidad de sistema de archivos (dbutils.fs)
Advertencia
La implementación de Python de todos los métodos dbutils.fs
usa snake_case
en lugar de camelCase
para el formato de palabras clave.
Por ejemplo: mientras que dbuitls.fs.help()
muestra la opción extraConfigs
para dbutils.fs.mount()
, en Python se usaría la palabra clave extra_configs
.
Comandos: cp, head, ls, mkdirs, mount, mounts, mv, put, refreshMounts, rm, unmount, updateMount
La utilidad del sistema de archivos permite acceder al sistema de archivos de Databricks (DBFS), lo que facilita el uso de Azure Databricks como sistema de archivos. Para enumerar los comandos disponibles, ejecute 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
Comando cp (dbutils.fs.cp)
Copia un archivo o un directorio, posiblemente entre sistemas de archivos.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("cp")
.
En este ejemplo se copia el archivo denominado old_file.txt
de /FileStore
a /tmp/new
, y se cambia el nombre del archivo copiado a 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
Comando head (dbutils.fs.head)
Devuelve hasta el número máximo especificado de bytes del archivo indicado. Los bytes se devuelven como una cadena codificada en UTF-8.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("head")
.
En este ejemplo se muestran los primeros 25 bytes del archivo my_file.txt
ubicado en /tmp
.
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!
// "
Comando ls (dbutils.fs.ls)
Enumera el contenido de un directorio.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("ls")
.
En este ejemplo se muestra información sobre el contenido de /tmp
. El campo modificationTime
está disponible en Databricks Runtime 10.2 y versiones posteriores. En R, modificationTime
se devuelve como una cadena.
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))
Comando mkdirs (dbutils.fs.mkdirs)
Crea el directorio indicado en caso de que no exista. También crea los directorios primarios necesarios.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("mkdirs")
.
En este ejemplo se crea la estructura de directorios /parent/child/grandchild
dentro de /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
Comando mount (dbutils.fs.mount)
Monta el directorio de origen especificado en DBFS en el punto de montaje especificado.
A fin de mostrar la ayuda para este comando, ejecute 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>")))
Para ver ejemplos de código adicionales, consulte Acceso a Azure Data Lake Storage Gen2 y Blob Storage.
Comando mounts (dbutils.fs.mounts)
Muestra información sobre lo que está montado actualmente en DBFS.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("mounts")
.
Python
dbutils.fs.mounts()
Scala
dbutils.fs.mounts()
Para ver ejemplos de código adicionales, consulte Acceso a Azure Data Lake Storage Gen2 y Blob Storage.
Comando mv (dbutils.fs.mv)
Mueve un archivo o un directorio, posiblemente entre sistemas de archivos. Un movimiento es una copia seguida de una eliminación, incluso para los movimientos dentro de los sistemas de archivos.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("mv")
.
En este ejemplo se mueve el archivo my_file.txt
de /FileStore
a /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
Comando put (dbutils.fs.put)
Escribe la cadena especificada en un archivo. La cadena está codificada en UTF-8.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("put")
.
En este ejemplo se escribe la cadena Hello, Databricks!
en un archivo denominado hello_db.txt
en /tmp
. Si el archivo existe, se sobrescribirá.
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
Comando refreshMounts (dbutils.fs.refreshMounts)
Fuerza a todas las máquinas del clúster a actualizar su caché de montaje, de modo que se asegura de que reciben la información más reciente.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("refreshMounts")
.
Python
dbutils.fs.refreshMounts()
Scala
dbutils.fs.refreshMounts()
Para ver ejemplos de código adicionales, consulte Acceso a Azure Data Lake Storage Gen2 y Blob Storage.
Comando rm (dbutils.fs.rm)
Quita un archivo o un directorio.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("rm")
.
En este ejemplo se quita el archivo denominado hello_db.txt
de /tmp
.
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
Comando unmount (dbutils.fs.unmount)
Elimina un punto de montaje de DBFS.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("unmount")
.
dbutils.fs.unmount("/mnt/<mount-name>")
Para ver ejemplos de código adicionales, consulte Acceso a Azure Data Lake Storage Gen2 y Blob Storage.
Comando updateMount (dbutils.fs.updateMount)
Es similar al comando dbutils.fs.mount
, pero actualiza un punto de montaje existente en lugar de crear uno nuevo. Devuelve un error si el punto de montaje no está presente.
A fin de mostrar la ayuda para este comando, ejecute dbutils.fs.help("updateMount")
.
Este comando está disponible en Databricks Runtime 10.2 y versiones posteriores.
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>")))
Utilidad de trabajos (dbutils.jobs)
Utilidades secundarias: taskValues
Nota
Disponible en Databricks Runtime 7.3 y versiones posteriores.
Esta utilidad solo está disponible para Python.
La utilidad de trabajos permite aprovechar las características de los trabajos. Para mostrar la ayuda de este comando, ejecute dbutils.jobs.help()
.
Provides utilities for leveraging jobs features.
taskValues: TaskValuesUtils -> Provides utilities for leveraging job task values
Utilidad secundaria taskValues (dbutils.jobs.taskValues)
Nota
Disponible en Databricks Runtime 7.3 y versiones posteriores.
Esta utilidad secundaria solo está disponible para Python.
Proporciona comandos para aprovechar los valores de las tareas del trabajo.
Use esta utilidad secundaria para establecer y obtener valores arbitrarios durante la ejecución de un trabajo. Estos valores se llaman valores de tarea. Puede acceder a los valores de tarea de las tareas del flujo descendente en la misma ejecución de trabajo. Por ejemplo, puede comunicar identificadores o métricas, como la información sobre la evaluación de un modelo de Machine Learning, entre diferentes tareas dentro de una ejecución de trabajo. Cada tarea puede establecer varios valores de tarea, obtenerlos o ambas. Cada valor de tarea tiene una clave única dentro de la misma tarea. Esta clave única se conoce como la clave del valor de tarea. Se accede a un valor de tarea con el nombre de la tarea y la clave del valor de tarea.
Para mostrar la ayuda de esta utilidad secundaria, ejecute dbutils.jobs.taskValues.help()
.
Comando get (dbutils.jobs.taskValues.get)
Nota
Disponible en Databricks Runtime 7.3 y versiones posteriores.
Este comando solo está disponible para Python.
En Databricks Runtime 10.4 y versiones anteriores, si get
no encuentra la tarea, se genera un error Py4JJavaError en lugar de ValueError
.
Obtiene el contenido del valor de tarea especificado para la tarea especificada en la ejecución actual del trabajo.
A fin de mostrar la ayuda para este comando, ejecute dbutils.jobs.taskValues.help("get")
.
Por ejemplo:
dbutils.jobs.taskValues.get(taskKey = "my-task", \
key = "my-key", \
default = 7, \
debugValue = 42)
En el ejemplo anterior:
taskKey
es el nombre de la tarea dentro del trabajo. Si el comando no encuentra esta tarea, se genera una excepciónValueError
.key
es el nombre de la clave del valor de tarea que estableció con el comando set (dbutils.jobs.taskValues.set). Si el comando no encuentra la clave de este valor de tarea, se genera una excepciónValueError
(a menos que se especifiquedefault
).default
es un valor opcional que se devuelve si no se encuentrakey
. El valor dedefault
no puede serNone
.debugValue
es un valor opcional que se devuelve si intenta obtener el valor de tarea desde un cuaderno que se ejecuta fuera de un trabajo. Esto puede ser útil durante la depuración cuando quiera ejecutar el cuaderno manualmente y devolver algún valor en lugar de generar una excepciónTypeError
de manera predeterminada. El valor dedebugValue
no puede serNone
.
Si intenta obtener un valor de tarea desde un cuaderno que se ejecuta fuera de un trabajo, este comando genera una excepción TypeError
de manera predeterminada. Sin embargo, si se especifica el argumento debugValue
en el comando, se devuelve el valor de debugValue
en lugar de generar una excepción TypeError
.
Comando set (dbutils.jobs.taskValues.set)
Nota
Disponible en Databricks Runtime 7.3 y versiones posteriores.
Este comando solo está disponible para Python.
Establece o actualiza un valor de tarea. Puede configurar hasta 250 valores de tarea para la ejecución de un trabajo.
A fin de mostrar la ayuda para este comando, ejecute dbutils.jobs.taskValues.help("set")
.
Estos son algunos ejemplos:
dbutils.jobs.taskValues.set(key = "my-key", \
value = 5)
dbutils.jobs.taskValues.set(key = "my-other-key", \
value = "my other value")
En los ejemplos anteriores:
key
es el nombre de la clave de este valor de tarea. Este nombre debe ser único en el trabajo.value
es el valor de la clave de este valor de tarea. Este comando debe ser capaz de representar el valor internamente en formato JSON. El tamaño de la representación JSON del valor no puede superar los 48 KiB.
Si intenta establecer un valor de tarea desde un cuaderno que se ejecuta fuera de un trabajo, este comando no hace nada.
Utilidad de biblioteca (dbutils.library)
Nota:
La utilidad de biblioteca está en desuso.
Comandos: install, installPyPI, list, restartPython, updateCondaEnv
La utilidad de biblioteca permite instalar las bibliotecas de Python y crear un entorno que tenga como ámbito una sesión de cuaderno. Las bibliotecas están disponibles tanto en el controlador como en los ejecutores, por lo que puede hacer referencia a ellas en funciones definidas por el usuario. Esto permite lo siguiente:
- Que las dependencias de biblioteca de un cuaderno se organicen dentro del propio cuaderno.
- Que los usuarios de cuadernos con diferentes dependencias de biblioteca compartan un clúster sin interferencias.
Al desasociar un cuaderno, se destruye este entorno. Sin embargo, puede crearlo de nuevo si vuelve a ejecutar los comandos de la API install
de biblioteca en el cuaderno. Consulte la API restartPython
para saber cómo puede restablecer el estado del cuaderno sin perder el entorno.
Importante
Las utilidades de biblioteca no están disponibles en Databricks Runtime ML ni Databricks Runtime para Genomics. En su lugar, consulte Bibliotecas de Python cuyo ámbito es el cuaderno.
En el caso de Databricks Runtime 7.2 y versiones posteriores, Databricks recomienda usar comandos magic %pip
para instalar bibliotecas con ámbito de cuaderno. Consulte Bibliotecas de Python cuyo ámbito es Notebook.
Las utilidades de biblioteca están habilitadas de manera predeterminada. Por lo tanto, de manera predeterminada, el entorno de Python para cada cuaderno se aísla mediante un ejecutable de Python independiente que se crea cuando el cuaderno se asocia al entorno predeterminado de Python en el clúster y lo hereda. Las bibliotecas instaladas a través de un script de inicialización en el entorno de Python de Azure Databricks siguen estando disponibles. Puede establecer el valor de spark.databricks.libraryIsolation.enabled
en false
para deshabilitar esta característica.
Esta API es compatible con la instalación existente de la biblioteca en todo el clúster a través de la interfaz de usuario y la API REST. Las bibliotecas instaladas a través de esta API tienen mayor prioridad que las bibliotecas de todo el clúster.
Para enumerar los comandos disponibles, ejecute dbutils.library.help()
.
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
Comando install (dbutils.library.install)
Dada una ruta de acceso a una biblioteca, instala la biblioteca en la sesión del cuaderno actual. Las bibliotecas instaladas mediante una llamada a este comando solo están disponibles para el cuaderno actual.
A fin de mostrar la ayuda para este comando, ejecute dbutils.library.help("install")
.
En este ejemplo se instala una biblioteca .egg
o .whl
en un cuaderno.
Importante
dbutils.library.install
se quitó en Databricks Runtime 11.0 y versiones posteriores.
Databricks recomienda colocar todos los comandos de instalación de la biblioteca en la primera celda del cuaderno y llamar a restartPython
al final de esa celda. El estado del cuaderno de Python se restablece después de ejecutar restartPython
; el cuaderno pierde todo el estado, incluidas, entre otras, las variables locales, las bibliotecas importadas y otros estados efímeros. Por lo tanto, se recomienda instalar las bibliotecas y restablecer el estado del cuaderno en la primera celda del cuaderno.
Los orígenes de biblioteca aceptados son dbfs
, abfss
, adl
y wasbs
.
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.
Nota:
Puede instalar directamente archivos wheel personalizados mediante %pip
. En el ejemplo siguiente se supone que ha cargado el archivo wheel de la biblioteca en DBFS:
%pip install /dbfs/path/to/your/library.whl
Pip no admite archivos egg, y wheel se considera el estándar de compilación y empaquetado binario para Python. Consulte Wheel frente a egg para obtener más detalles. Sin embargo, si quiere usar un archivo egg de una manera que sea compatible con %pip
, puede usar la siguiente solución alternativa:
# 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")
Comando installPyPI (dbutils.library.installPyPI)
Dado un paquete del índice de paquetes de Python (PyPI), instala ese paquete en la sesión del cuaderno actual. Las bibliotecas instaladas mediante una llamada a este comando están aisladas entre cuadernos.
A fin de mostrar la ayuda para este comando, ejecute dbutils.library.help("installPyPI")
.
En este ejemplo se instala un paquete PyPI en un cuaderno. version
, repo
y extras
son opcionales. Use el argumento extras
para especificar la característica adicional (requisitos adicionales).
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.
Importante
dbutils.library.installPyPI
se quitó en Databricks Runtime 11.0 y versiones posteriores.
Las claves version
y extras
no pueden formar parte de la cadena del paquete PyPI. Por ejemplo, dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0")
no es válido. Use los argumentos version
y extras
para especificar la versión y la información adicional como se muestra a continuación:
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.
Nota:
Al reemplazar los comandos dbutils.library.installPyPI
por los comandos %pip
, el intérprete de Python se reinicia automáticamente. Puede ejecutar el comando de instalación como se muestra a continuación:
%pip install azureml-sdk[databricks]==1.19.0
En este ejemplo se especifican los requisitos de biblioteca en un cuaderno y se instalan mediante %run
en el otro. Para ello, defina primero las bibliotecas que se instalarán en un cuaderno. En este ejemplo se usa un cuaderno denominado InstallDependencies
.
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.
A continuación, instálelas en el cuaderno que necesita esas dependencias.
%run /path/to/InstallDependencies # Install the dependencies in the first cell.
import torch
from sklearn.linear_model import LinearRegression
import azureml
...
En este ejemplo se restablece el estado del cuaderno de Python al mismo tiempo que se mantiene el entorno. Esta técnica solo está disponible en cuadernos de Python. Por ejemplo, puede usar esta técnica para recargar las bibliotecas de Azure Databricks preinstaladas con una versión diferente:
dbutils.library.installPyPI("numpy", version="1.15.4")
dbutils.library.restartPython()
# Make sure you start using the library in another cell.
import numpy
También puede usar esta técnica para instalar bibliotecas como tensorflow que deben cargarse al iniciarse el proceso:
dbutils.library.installPyPI("tensorflow")
dbutils.library.restartPython()
# Use the library in another cell.
import tensorflow
Comando list (dbutils.library.list)
Enumera las bibliotecas aisladas agregadas para la sesión del cuaderno actual a través de la utilidad de biblioteca. Esto no incluye las bibliotecas que están asociadas al clúster.
A fin de mostrar la ayuda para este comando, ejecute dbutils.library.help("list")
.
En este ejemplo se enumeran las bibliotecas instaladas en un cuaderno.
dbutils.library.list()
Nota:
El equivalente de este comando con %pip
es el siguiente:
%pip freeze
Comando restartPython (dbutils.library.restartPython)
Reinicia el proceso de Python para la sesión del cuaderno actual.
A fin de mostrar la ayuda para este comando, ejecute dbutils.library.help("restartPython")
.
En este ejemplo se reinicia el proceso de Python para la sesión del cuaderno actual.
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
Comando updateCondaEnv (dbutils.library.updateCondaEnv)
Actualiza el entorno de Conda del cuaderno actual en función del contenido de environment.yml
. Este método solo es compatible con Databricks Runtime en Conda.
A fin de mostrar la ayuda para este comando, ejecute dbutils.library.help("updateCondaEnv")
.
En este ejemplo se actualiza el entorno de Conda del cuaderno actual en función del contenido de la especificación proporcionada.
dbutils.library.updateCondaEnv(
"""
channels:
- anaconda
dependencies:
- gensim=3.4
- nltk=3.4
""")
Utilidad de cuaderno (dbutils.notebook)
La utilidad de cuaderno permite encadenar cuadernos y realizar acciones en sus resultados. Consulte Ejecutar un cuaderno de Databricks desde otro cuaderno.
Para enumerar los comandos disponibles, ejecute 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.
Comando exit (dbutils.notebook.exit)
Sale de un cuaderno con un valor.
A fin de mostrar la ayuda para este comando, ejecute dbutils.notebook.help("exit")
.
En este ejemplo se sale del cuaderno con el valor 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
Nota
Si la ejecución tiene una consulta con flujo estructurado que se ejecuta en segundo plano, la llamada a dbutils.notebook.exit()
no finaliza la ejecución. La ejecución continuará mientras la consulta se esté ejecutando en segundo plano. Para detener la consulta que se ejecuta en segundo plano, haga clic en Cancelar en la celda de la consulta o ejecute query.stop()
. Cuando se detenga la consulta, podrá finalizar la ejecución con dbutils.notebook.exit()
.
Comando run (dbutils.notebook.run)
Ejecuta un cuaderno y devuelve su valor de salida. El cuaderno se ejecutará en el clúster actual de manera predeterminada.
Nota:
La longitud máxima del valor de cadena devuelto por el comando run
es de 5 MB. Consulte Obtención de la salida de una sola ejecución (GET /jobs/runs/get-output
).
A fin de mostrar la ayuda para este comando, ejecute dbutils.notebook.help("run")
.
En este ejemplo se ejecuta un cuaderno denominado My Other Notebook
en la misma ubicación que el cuaderno que realiza la llamada. El cuaderno al que se realiza la llamada termina con la línea de código dbutils.notebook.exit("Exiting from My Other Notebook")
. Si el cuaderno al que se realiza la llamada no termina de ejecutarse en 60 segundos, se produce una excepción.
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
Utilidad de secretos (dbutils.secrets)
Comandos: get, getBytes, list, listScopes
La utilidad de secretos permite almacenar información confidencial de las credenciales y acceder a ella sin hacer que sean visibles en los cuadernos. Consulte Administración de secretos y Uso de secretos en un cuaderno. Para enumerar los comandos disponibles, ejecute 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
Comando get (dbutils.secrets.get)
Obtiene la representación de cadena del valor de un secreto para la clave y el ámbito de secretos especificados.
Advertencia
Los secretos de Azure Databricks pueden leerlos los administradores, los creadores de secretos y aquellos usuarios a los que se haya concedido el permiso pertinente. Aunque Azure Databricks hace un esfuerzo por redactar valores secretos que se puedan mostrar en cuadernos, no es posible impedir que estos usuarios lean secretos. Para más información, consulte el artículo sobre redacción de secretos.
A fin de mostrar la ayuda para este comando, ejecute dbutils.secrets.help("get")
.
En este ejemplo se obtiene la representación de cadena del valor del secreto para el ámbito denominado my-scope
y la clave denominada 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]
Comando getBytes (dbutils.secrets.getBytes)
Obtiene la representación de bytes del valor de un secreto para la clave y el ámbito especificados.
A fin de mostrar la ayuda para este comando, ejecute dbutils.secrets.help("getBytes")
.
Este ejemplo obtiene la representación en bytes del valor del secreto (en este ejemplo, a1!b2@c3#
) para el ámbito llamado my-scope
y la clave llamada 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)
Comando list (dbutils.secrets.list)
Enumera los metadatos de los secretos dentro del ámbito especificado.
A fin de mostrar la ayuda para este comando, ejecute dbutils.secrets.help("list")
.
En este ejemplo se enumeran los metadatos de los secretos dentro del ámbito denominado 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))
Comando listScopes (dbutils.secrets.listScopes)
Enumera los ámbitos disponibles.
A fin de mostrar la ayuda para este comando, ejecute dbutils.secrets.help("listScopes")
.
En este ejemplo se enumeran los ámbitos disponibles.
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))
Utilidad de widgets (dbutils.widgets)
Comandos: combobox, dropdown, get, getArgument, multiselect, remove, removeAll, text
La utilidad de widgets permite parametrizar cuadernos. Consulte Widgets de Databricks.
Para enumerar los comandos disponibles, ejecute 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
Comando combobox (dbutils.widgets.combobox)
Crea y muestra un widget de cuadro combinado con el nombre de programación, el valor predeterminado, las opciones y la etiqueta opcional que se especifican.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("combobox")
.
En este ejemplo se crea y muestra un widget de cuadro combinado con el nombre de programación fruits_combobox
. Ofrece las opciones apple
, banana
, coconut
y dragon fruit
, y se establece en el valor inicial de banana
. Este widget de cuadro combinado tiene una etiqueta Fruits
que lo acompaña. Este ejemplo termina con la impresión del valor inicial del widget de cuadro combinado, 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
Comando dropdown (dbutils.widgets.dropdown)
Crea y muestra un widget desplegable con el nombre de programación, el valor predeterminado, las opciones y la etiqueta opcional que se especifican.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("dropdown")
.
En este ejemplo se crea y muestra un widget desplegable con el nombre de programación toys_dropdown
. Ofrece las opciones alphabet blocks
, basketball
, cape
y doll
, y se establece en el valor inicial de basketball
. Este widget desplegable tiene una etiqueta Toys
que lo acompaña. Este ejemplo termina con la impresión del valor inicial del widget desplegable, 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
Comando get (dbutils.widgets.get)
Obtiene el valor actual del widget con el nombre de programación especificado. Este nombre de programación puede ser uno de los siguientes:
- El nombre de un widget personalizado en el cuaderno, por ejemplo
fruits_combobox
otoys_dropdown
. - El nombre de un parámetro personalizado pasado al cuaderno como parte de una tarea de cuaderno, por ejemplo
name
oage
. Para obtener más información, consulte la cobertura de parámetros para las tareas de cuadernos en la interfaz de usuario de creación de un trabajo o el camponotebook_params
en la operación para desencadenar la ejecución de un trabajo nuevo (POST /jobs/run-now
) de Jobs API.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("get")
.
En este ejemplo se obtiene el valor del widget que tiene el nombre de programación 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
En este ejemplo se obtiene el valor del parámetro de tarea del cuaderno que tiene el nombre de programación age
. Este parámetro se estableció en 35
cuando se ejecutó la tarea del cuaderno relacionada.
Python
dbutils.widgets.get('age')
# 35
R
dbutils.widgets.get('age')
# [1] "35"
Scala
dbutils.widgets.get("age")
// res6: String = 35
Comando getArgument (dbutils.widgets.getArgument)
Obtiene el valor actual del widget con el nombre de programación especificado. Si el widget no existe, se puede devolver un mensaje opcional.
Nota:
Este comando está en desuso. Use dbutils.widgets.get en su lugar.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("getArgument")
.
En este ejemplo se obtiene el valor del widget que tiene el nombre de programación fruits_combobox
. Si este widget no existe, se devuelve el mensaje 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
Comando multiselect (dbutils.widgets.multiselect)
Crea y muestra un widget de selección múltiple con el nombre de programación, el valor predeterminado, las opciones y la etiqueta opcional que se especifican.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("multiselect")
.
En este ejemplo se crea y muestra un widget de selección múltiple con el nombre de programación days_multiselect
. Ofrece las opciones de Monday
a Sunday
y se establece en el valor inicial de Tuesday
. Este widget de selección múltiple tiene una etiqueta Days of the Week
que lo acompaña. Este ejemplo termina con la impresión del valor inicial del widget de selección múltiple, 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
Comando remove (dbutils.widgets.remove)
Quita el widget con el nombre de programación especificado.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("remove")
.
Importante
Si agrega un comando para quitar un widget, no puede agregar un comando posterior para crear un widget en la misma celda. Debe crear el widget en otra celda.
En este ejemplo se quita el widget con el nombre de programación fruits_combobox
.
Python
dbutils.widgets.remove('fruits_combobox')
R
dbutils.widgets.remove('fruits_combobox')
Scala
dbutils.widgets.remove("fruits_combobox")
Comando removeAll (dbutils.widgets.removeAll)
Quita todos los widgets del cuaderno.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("removeAll")
.
Importante
Si agrega un comando para quitar todos los widgets, no puede agregar un comando posterior para crear widgets en la misma celda. Debe crear los widgets en otra celda.
En este ejemplo se quitan todos los widgets del cuaderno.
Python
dbutils.widgets.removeAll()
R
dbutils.widgets.removeAll()
Scala
dbutils.widgets.removeAll()
Comando text (dbutils.widgets.text)
Crea y muestra un widget de texto con el nombre de programación, el valor predeterminado y la etiqueta opcional que se especifican.
A fin de mostrar la ayuda para este comando, ejecute dbutils.widgets.help("text")
.
En este ejemplo se crea y muestra un widget de texto con el nombre de programación your_name_text
. Se establece en el valor inicial de Enter your name
. Este widget de texto tiene una etiqueta Your name
que lo acompaña. Este ejemplo termina con la impresión del valor inicial del widget de texto, 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
Biblioteca de la API de utilidades de Databricks
Para acelerar el desarrollo de aplicaciones, puede resultar útil compilar, crear y probar aplicaciones antes de implementarlas como trabajos de producción. Para poder compilar con las utilidades de Databricks, Databricks proporciona la biblioteca dbutils-api
. Puede descargar la biblioteca dbutils-api
desde la página web de la API de DBUtils en el sitio web del repositorio de Maven o incluir la biblioteca mediante la adición de una dependencia al archivo de compilación:
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'
Reemplace TARGET
por el destino deseado (por ejemplo2.12
) y VERSION
por la versión deseada (por ejemplo 0.0.5
). Para obtener una lista de los destinos y versiones disponibles, consulte la página web de la API de DBUtils en el sitio web del repositorio de Maven.
Una vez compilada la aplicación con esta biblioteca, puede implementarla.
Importante
La biblioteca dbutils-api
permite compilar localmente una aplicación que usa dbutils
, pero no ejecutarla. Para ejecutar la aplicación, debe implementarla en Azure Databricks.
Limitaciones
Llamar a dbutils
dentro de los ejecutores puede producir resultados inesperados o, potencialmente, generar errores.
Si necesita ejecutar operaciones de sistema de archivos en ejecutores mediante dbutils
, hay disponibles varias alternativas más rápidas y escalables:
- En el caso de las operaciones de copia o movimiento de archivos, puede consultar una opción más rápida para ejecutar operaciones de sistema de archivos en Realización de operaciones del sistema de archivos en paralelo.
- En el caso de las operaciones de enumeración y eliminación de sistema de archivos, puede consultar los métodos de eliminación y enumeración en paralelo mediante Spark en Cómo enumerar y eliminar archivos más rápido en Databricks.
Para obtener información sobre los ejecutores, consulte Información general sobre el modo de clúster en el sitio web de Apache Spark.