Utilitários do Databricks

Databricks Utilities dbutils () facilitam a realização de poderosas combinações de tarefas. Você pode usar os utilitários para trabalhar com armazenamento de objetos eficientemente, para acorrentar e parametrizar cadernos, e para trabalhar com segredos. dbutils não são suportados fora dos cadernos.

dbutils utilitários estão disponíveis em cadernos Python, R e Scala.

Como: Listar utilitários, listar comandos, mostrar ajuda ao comando

Utilidades: fs, biblioteca,caderno, segredos, widgets, Biblioteca API utilities

Lista de utilitários disponíveis

Para listar os utilitários disponíveis juntamente com uma breve descrição para cada utilidade, corra dbutils.help() para Python ou Scala.

Este exemplo lista os comandos disponíveis para os Utilitários 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
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

Lista de comandos disponíveis para um utilitário

Para listar os comandos disponíveis para um utilitário juntamente com uma breve descrição de cada comando, corra .help() atrás do nome programático para o utilitário.

Este exemplo lista os comandos disponíveis para o utilitário Databricks File System (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

Mostrar ajuda para um comando

Para mostrar ajuda para um comando, corra .help("<command-name>") atrás do nome de comando.

Este exemplo mostra ajuda para o comando de cópia 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

Utilidade do sistema de ficheiros (dbutils.fs)

Comandos: cp, cabeça, ls, mkdirs, montagem, montagem, mv, colocar, refreshMounts, rm, unmount

O utilitário do sistema de ficheiros acede ao Databricks File System (DBFS),facilitando a utilização de Azure Databricks como sistema de ficheiros. Para listar os comandos disponíveis, corra 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

comando cp (dbutils.fs.cp)

Copia um ficheiro ou diretório, possivelmente através de sistemas de ficheiros.

Para mostrar ajuda para este comando, corra dbutils.fs.help("cp") .

Este exemplo copia o ficheiro nomeado old_file.txt /FileStore /tmp/new para, renomeando o ficheiro copiado para 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 de cabeça (dbutils.fs.head)

Retorna até os bytes de número máximo especificados do ficheiro dado. Os bytes são devolvidos como uma corda codificada UTF-8.

Para mostrar ajuda para este comando, corra dbutils.fs.help("head") .

Este exemplo mostra os primeiros 25 bytes do ficheiro my_file.txt localizado em /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!
// "

ls comando (dbutils.fs.ls)

Lista o conteúdo de um diretório.

Para mostrar ajuda para este comando, corra dbutils.fs.help("ls") .

Este exemplo apresenta informações sobre o conteúdo de /tmp .

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

comando mkdirs (dbutils.fs.mkdirs)

Cria o diretório dado se não existir. Também cria os directórios-mãe necessários.

Para mostrar ajuda para este comando, corra dbutils.fs.help("mkdirs") .

Este exemplo cria a estrutura do diretório /parent/child/grandchild dentro /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 de montagem (dbutils.fs.mount)

Monta o diretório de origem especificado em DBFS no ponto de montagem especificado.

Para mostrar ajuda para este comando, corra 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 obter exemplos de código adicionais, consulte o armazenamento do Azure Blob.

monta o comando (dbutils.fs.mounts)

Exibe informações sobre o que está atualmente montado no DBFS.

Para mostrar ajuda para este comando, corra dbutils.fs.help("mounts") .

Python

dbutils.fs.mounts()

Scala

dbutils.fs.mounts()

Para obter exemplos de código adicionais, consulte o armazenamento do Azure Blob.

comando mv (dbutils.fs.mv)

Move um ficheiro ou diretório, possivelmente através de sistemas de ficheiros. Um movimento é uma cópia seguida de uma eliminação, mesmo para movimentos dentro de sistemas de ficheiros.

Para mostrar ajuda para este comando, corra dbutils.fs.help("mv") .

Este exemplo move o ficheiro my_file.txt de /FileStore /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

colocar comando (dbutils.fs.put)

Escreve a cadeia especificada para um ficheiro. A corda está codificada UTF-8.

Para mostrar ajuda para este comando, corra dbutils.fs.help("put") .

Este exemplo escreve a cadeia Hello, Databricks! para um ficheiro nomeado em hello_db.txt /tmp . Se o ficheiro existir, será substituído.

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 comando (dbutils.fs.refreshMounts)

Força todas as máquinas do aglomerado a refrescar a sua cache de montagem, garantindo que recebem as informações mais recentes.

Para mostrar ajuda para este comando, corra dbutils.fs.help("refreshMounts") .

Python

dbutils.fs.refreshMounts()

Scala

dbutils.fs.refreshMounts()

Para obter exemplos de códigos aditivos, consulte o armazenamento do Azure Blob.

comando rm (dbutils.fs.rm)

Remove um ficheiro ou diretório.

Para mostrar ajuda para este comando, corra dbutils.fs.help("rm") .

Este exemplo remove o ficheiro nomeado hello_db.txt em /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

desmonte o comando (dbutils.fs.desmonte)

Elimina um ponto de montagem DBFS.

Para mostrar ajuda para este comando, corra dbutils.fs.help("unmount") .

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

Para obter exemplos de código adicionais, consulte o armazenamento do Azure Blob.

Utilidade da biblioteca (dbutils.library)

Nota

O utilitário da biblioteca está precotado.

Comandos: instalar, instalarPyPI, lista, reiniciarPython, actualizarCondaEnv

O utilitário da biblioteca permite-lhe instalar bibliotecas Python e criar um ambiente atento a uma sessão de cadernos. As bibliotecas estão disponíveis tanto no controlador como nos executores, para que possa fazê-las referenciar em funções definidas pelo utilizador. Isto permite:

  • Dependências da biblioteca de um caderno a ser organizado dentro do próprio caderno.
  • Utilizadores de portátil com diferentes dependências da biblioteca para partilhar um cluster sem interferências.

Separar um caderno destrói este ambiente. No entanto, pode recriá-lo recorrindo os install comandos da API da biblioteca no caderno. Consulte a restartPython API para saber como pode redefinir o seu estado de caderno sem perder o ambiente.

Importante

Os utilitários da biblioteca não estão disponíveis em Databricks Runtime ML ou Databricks Runtime for Genomics. Em vez disso, consulte as bibliotecas Python com âmbito de caderno.

Para databricks Runtime 7.2 ou superior, Databricks recomenda a utilização %pip de comandos mágicos para instalar bibliotecas com âmbito de portátil. Veja Bibliotecas em Python com âmbito de bloco de notas.

Os serviços de biblioteca são ativados por padrão. Portanto, por defeito, o ambiente Python para cada caderno é isolado usando um Python separado executável que é criado quando o caderno é ligado e herda o ambiente python padrão no cluster. As bibliotecas instaladas através de um script init no ambiente Azure Databricks Python ainda estão disponíveis. Pode desativar esta função definindo spark.databricks.libraryIsolation.enabled para false .

Esta API é compatível com a instalação existente da biblioteca em todo o cluster através da UI e REST API. As bibliotecas instaladas através desta API têm maior prioridade do que as bibliotecas em todo o cluster.

Para listar os comandos disponíveis, corra 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

instalar comando (dbutils.library.install)

Dado o caminho para uma biblioteca, instala essa biblioteca dentro da sessão de cadernos em curso. As bibliotecas instaladas por chamar este comando estão disponíveis apenas para o caderno atual.

Para mostrar ajuda para este comando, corra dbutils.library.help("install") .

Este exemplo instala uma .egg ou biblioteca dentro de um .whl caderno.

Importante

Databricks recomenda que coloque todos os comandos de instalação da sua biblioteca na primeira célula do seu caderno e ligue restartPython no final dessa célula. O estado do caderno Python é reposto após a restartPython execução; o caderno perde todo o estado, incluindo, mas não se limitando a variáveis locais, bibliotecas importadas e outros estados efémeros. Por isso, recomendamos que instale bibliotecas e reponha o estado do caderno na primeira célula portátil.

As fontes de biblioteca aceites dbfs abfss adl são, wasbs e.

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

Pode instalar diretamente ficheiros de rodas personalizados utilizando %pip . No seguinte exemplo, assumimos que fez o upload do ficheiro da roda da biblioteca para o DBFS:

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

Os ficheiros de ovos não são suportados por pip, e a roda é considerada o padrão para a construção e embalagem binária para Python. Consulte Roda vs Ovo para mais detalhes. No entanto, se quiser utilizar um ficheiro de ovos de uma forma compatível %pip com, pode utilizar a seguinte solução:

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

instalar comandoPyPI (dbutils.library.installPyPI)

Dado um pacote Python Package Index (PyPI), instale esse pacote dentro da sessão de cadernos em curso. As bibliotecas instaladas por chamar este comando estão isoladas entre cadernos.

Para mostrar ajuda para este comando, corra dbutils.library.help("installPyPI") .

Este exemplo instala um pacote PyPI num caderno. version, repo e extras são opcionais. Utilize o extras argumento para especificar a função Extras (requisitos adicionais).

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

As version extras teclas não podem fazer parte da cadeia de pacotes PyPI. Por exemplo: dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0") não é válido. Utilize os version argumentos e argumentos para extras especificar a versão e informações extras da seguinte forma:

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

Ao substituir dbutils.library.installPyPI comandos por %pip comandos, o intérprete Python é reiniciado automaticamente. Pode executar o comando de instalação da seguinte forma:

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

Este exemplo especifica os requisitos da biblioteca num só portátil e instala-os %run utilizando-os no outro. Para isso, primeiro defina as bibliotecas para instalar num caderno. Este exemplo usa um caderno chamado 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.

Em seguida, instale-os no caderno que precisa dessas dependências.

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

Este exemplo repõe o estado do caderno Python mantendo o ambiente. Esta técnica está disponível apenas em cadernos Python. Por exemplo, pode utilizar esta técnica para recarregar bibliotecas Azure Databricks pré-instalados com uma versão diferente:

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

Também pode utilizar esta técnica para instalar bibliotecas como o tensorflow que precisam de ser carregados no arranque do processo:

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

comando de lista (dbutils.library.list)

Lista as bibliotecas isoladas adicionadas para a sessão de cadernos em curso através do utilitário da biblioteca. Isto não inclui bibliotecas que estejam ligadas ao cluster.

Para mostrar ajuda para este comando, corra dbutils.library.help("list") .

Este exemplo lista as bibliotecas instaladas num caderno.

dbutils.library.list()

Nota

O equivalente a este comando %pip é:

%pip freeze

comando de Reinicipython (dbutils.library.restartPython)

Reinicia o processo Python para a sessão de cadernos em curso.

Para mostrar ajuda para este comando, corra dbutils.library.help("restartPython") .

Este exemplo reinicia o processo Python para a sessão de cadernos em curso.

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

atualizar ComandoCondaEnv (dbutils.library.updateCondaEnv)

Atualiza o ambiente Conda do atual portátil com base no conteúdo de environment.yml . Este método é suportado apenas para databricks runtime em Conda.

Para mostrar ajuda para este comando, corra dbutils.library.help("updateCondaEnv") .

Este exemplo atualiza o ambiente Conda do atual portátil com base no conteúdo da especificação fornecida.

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

Utilidade de caderno (dbutils.notebook)

Comandos: saída, execução

O utilitário do caderno permite-lhe acorrentar cadernos e agir com base nos seus resultados. Consulte os fluxos de trabalho do Notebook.

Para listar os comandos disponíveis, corra 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 de saída (dbutils.notebook.exit)

Sai de um caderno com um valor.

Para mostrar ajuda para este comando, corra dbutils.notebook.help("exit") .

Este exemplo sai do caderno com o Exiting from My Other Notebook valor.

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

executar comando (dbutils.notebook.run)

Executa um caderno e devolve o seu valor de saída. O caderno será executado no cluster atual por defeito.

Nota

O comprimento máximo do valor da corda devolvido do run comando é de 5 MB. Ver Runs obter saída.

Para mostrar ajuda para este comando, corra dbutils.notebook.help("run") .

Este exemplo executa um caderno nomeado My Other Notebook no mesmo local que o caderno de chamadas. O chamado caderno termina com a linha de dbutils.notebook.exit("Exiting from My Other Notebook") código. Se o caderno chamado não terminar de funcionar dentro de 60 segundos, é lançada uma exceção.

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

Utilidade de segredos

O utilitário secrets permite armazenar e aceder a informações de credenciais sensíveis sem as tornar visíveis em cadernos. Consulte a gestão secreta e use os segredos num caderno.

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

Nota

Pode obter informações detalhadas sobre cada comando help utilizando, por exemplo: dbutils.secrets.help("get")

Utilitários Widget

Os widgets permitem-lhe parametrizar cadernos. Ver Widgets. Saiba mais correndo:

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

Nota

Pode obter informações detalhadas sobre cada comando help utilizando, por exemplo: dbutils.widgets.help("combobox")

Utilitários de fluxo de trabalho portátil

Os fluxos de trabalho dos cadernos permitem-lhe acorrentar cadernos e agir com base nos seus resultados. Consulte os fluxos de trabalho do Notebook. Saiba mais correndo:

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.

Nota

O comprimento máximo do valor da corda devolvido é de run 5 MB. Ver Runs obter saída.

Nota

Pode obter informações detalhadas sobre cada comando help utilizando, por exemplo: dbutils.notebook.help("exit")

Serviços de segredos

Os segredos permitem-lhe armazenar e aceder a informações de credenciais sensíveis sem as tornar visíveis em cadernos. Consulte a gestão secreta e use os segredos num caderno. Saiba mais correndo:

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

Nota

Pode obter informações detalhadas sobre cada comando help utilizando, por exemplo: dbutils.secrets.help("get")

Biblioteca API de Utilitários de Dados

Para acelerar o desenvolvimento de aplicações, pode ser útil compilar, construir e testar aplicações antes de as implementar como trabalhos de produção. Para que possa compilar contra databricks Utilities, a Databricks fornece a dbutils-api biblioteca. Pode baixar a biblioteca dbutils-api ou incluir a biblioteca adicionando uma dependência ao seu ficheiro de construção:

  • SBT

    libraryDependencies += "com.databricks" % "dbutils-api_2.12" % "0.0.5"
    
  • Maven

    <dependency>
        <groupId>com.databricks</groupId>
        <artifactId>dbutils-api_2.12</artifactId>
        <version>0.0.5</version>
    </dependency>
    
  • Gradle

    compile 'com.databricks:dbutils-api_2.12:0.0.5'
    

Assim que construir a sua aplicação contra esta biblioteca, pode implementar a aplicação.

Importante

A dbutils-api biblioteca permite-lhe compilar localmente uma aplicação que dbutils utiliza, mas não para executá-la. Para executar a aplicação, tem de a implantar em Azure Databricks.

Expresse a versão Scala do artefacto com %%

Se exprimir a versão do artefacto como groupID %% artifactID % revision em vez de groupID % artifactID % revision (a diferença é o dobro após %% o ), groupID SBT adicionará a versão Scala do seu projeto ao nome do artefacto.

Exemplo

Suponha que a scalaVersion sua construção 2.9.1 seja. Pode escrever a versão do artefacto com o % seguinte:

val appDependencies = Seq(
  "org.scala-tools" % "scala-stm_2.9.1" % "0.3"
)

A utilização %% é idêntica:

val appDependencies = Seq(
  "org.scala-tools" %% "scala-stm" % "0.3"
)

Exemplo de projetos

Aqui está um arquivo de exemplo que contém projetos de exemplo mínimo que mostram como compilar usando a biblioteca para dbutils-api 3 ferramentas de construção comuns:

  • sbt: sbt package
  • Maven: mvn install
  • Gradle: gradle build

Estes comandos criam JARs de saída nos locais:

  • sbt: target/scala-2.11/dbutils-api-example_2.11-0.0.1-SNAPSHOT.jar
  • Maven: target/dbutils-api-example-0.0.1-SNAPSHOT.jar
  • Gradle: build/examples/dbutils-api-example-0.0.1-SNAPSHOT.jar

Pode anexar este JAR ao seu cluster como biblioteca, reiniciar o cluster e, em seguida, executar:

example.Test()

Esta declaração cria um widget de entrada de texto com a etiqueta Hello: e o valor inicial World.

Podes usar todas as outras dbutils APIs da mesma forma.

Para testar uma aplicação que utiliza o objeto fora dos dbutils Databricks, pode simular o dbutils objeto chamando:

com.databricks.dbutils_v1.DBUtilsHolder.dbutils0.set(
  new com.databricks.dbutils_v1.DBUtilsV1{
    ...
  }
)

Substitua o seu próprio DBUtilsV1 exemplo no qual implementa os métodos de interface como quiser, por exemplo, fornecendo uma maquete de sistema de ficheiros local para dbutils.fs .