Служебные программы Databricks

Программы для работы с модулями данных ( dbutils ) позволяют легко выполнять эффективные сочетания задач. Эти служебные программы можно использовать для эффективной работы с хранилищем объектов, для цепочки и параметризации записных книжек, а также для работы с секретами. dbutils не поддерживаются за пределами записных книжек.

dbutils Служебные программы доступны в записных книжках Python, R и Scala.

Руководство. Вывод списка служебных программ, команд List, Вывод справки по командам

Служебные программы: FS, Библиотека, Записная книжка, секреты, мини-приложения, Библиотека API служебных программ

Список доступных служебных программ

Чтобы получить список доступных служебных программ вместе с кратким описанием для каждой программы, выполните команду dbutils.help() для Python или Scala.

В этом примере перечислены доступные команды для служебных программ "кирпичи".

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

Вывод списка доступных команд для служебной программы

Чтобы получить список доступных команд для служебной программы вместе с кратким описанием каждой команды, запустите .help() после программного имени программы.

В этом примере выводится список доступных команд для служебной программы "файловая система кирпича (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

Отображение справки для команды

Чтобы отобразить справку для команды, выполните команду .help("<command-name>") после имени команды.

В этом примере отображается справка для команды DBFS Copy.

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

Программа файловой системы (дбутилс. FS)

Команды: CP, head, Ls, mkdir, Подключение, подключения, MV, Размещение, рефрешмаунтс, RM, Отключение

Программа файловой системы обращается к файловой системе DBFS, что упрощает использование Azure Databricks в качестве файловой системы. Чтобы получить список доступных команд, выполните команду 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

CP-команда (дбутилс. FS. CP)

Копирование файла или каталога, возможно, в нескольких файловых системах.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("cp") .

В этом примере копируется файл с именем old_file.txt из /FileStore в /tmp/new , переименование скопированного файла в new_file.txt .

Python

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

# Out[4]: True

R

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

# [1] TRUE

Scala

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

// res3: Boolean = true

команда Head (дбутилс. FS. Head)

Возвращает до указанного максимального числа байтов заданного файла. Байты возвращаются в виде строки в кодировке UTF-8.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("head") .

В этом примере отображаются первые 25 байт файла, my_file.txt расположенного в /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 ( dbutils.FS.ls)

Выводит список содержимого каталога.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("ls") .

В этом примере отображаются сведения о содержимом /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))

команда mkdir (дбутилс. FS. mkdirs )

Создает указанный каталог, если он не существует. Также создает все необходимые родительские каталоги.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("mkdirs") .

В этом примере создается структура каталогов /parent/child/grandchild в /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

команда подключения (дбутилс. FS. Mount)

Подключает указанный исходный каталог к DBFS в указанной точке подключения.

Чтобы отобразить справку для этой команды, выполните команду 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>")))

Дополнительные примеры кода см. в статье хранилище BLOB-объектов Azure.

команда подключений (дбутилс. FS. Mount)

Отображает сведения о том, что в настоящее время подключено в DBFS.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("mounts") .

Python

dbutils.fs.mounts()

Scala

dbutils.fs.mounts()

Дополнительные примеры кода см. в статье хранилище BLOB-объектов Azure.

команда mv ( dbutils.FS.MV)

Перемещает файл или каталог, возможно, через несколько файловых систем. Перемещение — это копия, за которой следует удаление, даже перемещение внутри файловой системы.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("mv") .

В этом примере файл перемещается my_file.txt из /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

команда размещения (дбутилс. FS. размещение)

Записывает указанную строку в файл. Строка имеет кодировку UTF-8.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("put") .

В этом примере строка записывается Hello, Databricks! в файл с именем hello_db.txt в /tmp . Если файл существует, он будет перезаписан.

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

команда рефрешмаунтс (дбутилс. FS. рефрешмаунтс)

Заставляет все компьютеры в кластере обновить свой кэш подключения, гарантируя, что они получат самые последние сведения.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("refreshMounts") .

Python

dbutils.fs.refreshMounts()

Scala

dbutils.fs.refreshMounts()

Примеры кода аддитиионал см. в статье хранилище BLOB-объектов Azure.

команда RM (дбутилс. FS. RM)

Удаляет файл или каталог.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("rm") .

В этом примере удаляется файл с именем hello_db.txt в /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

команда отключения (дбутилс. FS. unmount )

Удаляет точку подключения DBFS.

Чтобы отобразить справку для этой команды, выполните команду dbutils.fs.help("unmount") .

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

Дополнительные примеры кода см. в статье хранилище BLOB-объектов Azure.

Служебная программа библиотеки (дбутилс. Library)

Примечание

Служебная программа библиотеки является устаревшей.

Команды: Install, инсталлпипи, List, рестартписон, упдатекондаенв

Служебная программа библиотеки позволяет установить библиотеки Python и создать среду для сеанса записной книжки. Библиотеки доступны как в драйвере, так и на исполнителях, чтобы вы могли ссылаться на них в пользовательских функциях. Это обеспечивает следующее.

  • Зависимости библиотеки записной книжки для Организации в самой записной книжке.
  • Пользователи ноутбуков с разными зависимостями библиотек для совместного использования кластера без помех.

Отсоединение записной книжки уничтожает эту среду. Однако ее можно создать повторно, перепустив install команды API библиотеки в записной книжке. Сведения restartPython о том, как можно сбросить состояние записной книжки без потери среды, см. в API.

Важно!

Программы библиотеки недоступны в Databricks Runtime ML или Databricks Runtime для Genomics. Вместо этого обратитесь к библиотекам Python с областью действия записной книжки.

Для Databricks Runtime 7,2 и более поздних версий для %pip установки библиотек уровня записной книжки рекомендуется использовать волшебные команды. См. статью Библиотеки Python с областью действия записной книжки.

Программы библиотеки включены по умолчанию. Таким образом, по умолчанию среда Python для каждой записной книжки изолирована с помощью отдельного исполняемого файла Python, который создается, когда Записная книжка подключена к и наследует среду Python по умолчанию в кластере. Библиотеки, установленные с помощью скрипта init , в среду Azure Databricks Python по-прежнему доступны. Эту функцию можно отключить, задав spark.databricks.libraryIsolation.enabled для значение false .

Этот API совместим с существующей установкой библиотеки на уровне кластера через Пользовательский интерфейс и REST API. Библиотеки, установленные с помощью этого API, имеют более высокий приоритет, чем библиотеки на уровне кластера.

Чтобы получить список доступных команд, выполните команду 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

команда установки (дбутилс. Library. install)

При наличии пути к библиотеке устанавливает эту библиотеку в текущем сеансе записной книжки. Библиотеки, установленные путем вызова этой команды, доступны только для текущей записной книжки.

Чтобы отобразить справку для этой команды, выполните команду dbutils.library.help("install") .

В этом примере устанавливается .egg .whl Библиотека или в записной книжке.

Важно!

Модуль данных рекомендует разместить все команды установки библиотеки в первой ячейке записной книжки и вызвать restartPython его в конце этой ячейки. Состояние записной книжки Python сбрасывается после выполнения restartPython . Записная книжка теряет все состояние, включая, но не ограничены локальными переменными, импортированными библиотеками и другими временными состояниями. Поэтому рекомендуется установить библиотеки и сбросить состояние записной книжки в первой ячейке записной книжки.

Допустимыми источниками библиотек являются dbfs ,, abfss adl и 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.

Примечание

Можно напрямую установить пользовательские файлы Wheel с помощью %pip . В следующем примере предполагается, что вы отправили файл колеса библиотеки в DBFS:

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

Файлы egg не поддерживаются PIP, а колесо считается стандартом для сборки и двоичной упаковки для Python. Дополнительные сведения см. в разделе колесо VS Egg . Однако если вы хотите использовать файл Egg способом, совместимым с %pip , можно использовать следующее решение:

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

команда инсталлпипи (дбутилс. Library. инсталлпипи)

При наличии пакета Python (PyPI), установите этот пакет в текущем сеансе записной книжки. Библиотеки, установленные путем вызова этой команды, изолированы между записными книжками.

Чтобы отобразить справку для этой команды, выполните команду dbutils.library.help("installPyPI") .

В этом примере пакет PyPI устанавливается в записную книжку. version, repo и extras являются необязательными. Используйте extras аргумент, чтобы указать дополнительный компонент (дополнительные требования).

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.

Важно!

versionКлючи и extras не могут входить в строку пакета PyPI. Например: недопустимо dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0") . Используйте version аргументы и, extras чтобы указать версию и дополнительные сведения, как показано ниже.

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.

Примечание

При замене команд командами dbutils.library.installPyPI %pip интерпретатор Python автоматически перезапускается. Команду install можно выполнить следующим образом:

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

В этом примере задаются требования к библиотеке в одной записной книжке и устанавливаются с помощью %run в другой. Для этого сначала определите библиотеки для установки в записной книжке. В этом примере используется записная книжка с именем 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.

Затем установите их в записной книжке, которой требуются эти зависимости.

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

В этом примере выполняется сброс состояния записной книжки Python с сохранением среды. Этот метод доступен только в записных книжках Python. Например, этот метод можно использовать для перезагрузки библиотек Azure Databricks предварительно установленной с другой версией:

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

Эту методику также можно использовать для установки библиотек, например tensorflow, которые должны быть загружены при запуске процесса.

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

команда List (дбутилс. Library. List)

Список изолированных библиотек, добавленных для текущего сеанса записной книжки с помощью служебной программы библиотеки. Сюда не входят библиотеки, подключенные к кластеру.

Чтобы отобразить справку для этой команды, выполните команду dbutils.library.help("list") .

В этом примере перечислены библиотеки, установленные в записной книжке.

dbutils.library.list()

Примечание

В качестве эквивалента этой команды используется %pip :

%pip freeze

команда рестартписон (дбутилс. Library. рестартписон)

Перезапускает процесс Python для текущего сеанса записной книжки.

Чтобы отобразить справку для этой команды, выполните команду dbutils.library.help("restartPython") .

В этом примере перезапускается процесс Python для текущего сеанса записной книжки.

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

команда упдатекондаенв (дбутилс. Library. упдатекондаенв)

Обновляет среду Conda текущей записной книжки на основе содержимого environment.yml . Этот метод поддерживается только для Databricks Runtime в Conda.

Чтобы отобразить справку для этой команды, выполните команду dbutils.library.help("updateCondaEnv") .

В этом примере обновляется среда Conda текущей записной книжки на основе содержимого указанной спецификации.

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

Служебная программа для записных книжек (дбутилс. Notebook)

Команды: Exit, Run

Служебная программа для записных книжек позволяет объединять записные книжки в цепочки и выполнять их результаты. См. рабочие процессы записной книжки.

Чтобы получить список доступных команд, выполните команду dbutils.notebook.help() .

exit(value: String): void -> This method lets you exit a notebook with a value
run(path: String, timeoutSeconds: int, arguments: Map): String -> This method runs a notebook and returns its exit value.

Exit, команда (дбутилс. Notebook. Exit)

Выход из записной книжки со значением.

Чтобы отобразить справку для этой команды, выполните команду dbutils.notebook.help("exit") .

В этом примере выполняется выход из записной книжки со значением 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

Run, команда (дбутилс. Notebook. Run)

Запускает записную книжку и возвращает значение выхода. По умолчанию Записная книжка будет запускаться в текущем кластере.

Примечание

Максимальная длина строкового значения, возвращаемого run командой, равна 5 МБ. См. раздел запуски получения выходных данных.

Чтобы отобразить справку для этой команды, выполните команду dbutils.notebook.help("run") .

В этом примере запускается Записная книжка с именем My Other Notebook в том же расположении, что и вызывающая Записная книжка. Вызванная Записная книжка заканчивается строкой кода dbutils.notebook.exit("Exiting from My Other Notebook") . Если вызванная Записная книжка не завершает работу в течение 60 секунд, возникает исключение.

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

Секретная программа

Служебная программа секреты позволяет хранить конфиденциальные учетные данные и получать к ним доступ, не делая их видимыми в записных книжках. См. раздел Управление секретами и Использование секретов в записной книжке.

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

Примечание

Подробные сведения о каждой команде можно получить help , используя, например: dbutils.secrets.help("get")

Служебные программы мини -приложений

Мини-приложения позволяют параметризовать записные книжки. См. раздел мини-приложения. Дополнительные сведения см. в статье:

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

Примечание

Подробные сведения о каждой команде можно получить help , используя, например: dbutils.widgets.help("combobox")

Библиотека API служебных программ для кирпичей

Для ускорения разработки приложений может быть полезно компилировать, создавать и тестировать приложения перед их развертыванием в качестве рабочих заданий. Чтобы обеспечить компиляцию с помощью служебных программ, кирпичи предоставляют dbutils-api библиотеку. Вы можете скачать библиотеку дбутилс-API или включить библиотеку, добавив зависимость в файл сборки:

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

После сборки приложения для этой библиотеки можно развернуть приложение.

Важно!

dbutils-apiБиблиотека позволяет локально компилировать приложение, которое использует dbutils , но не запускает его. Чтобы запустить приложение, необходимо развернуть его в Azure Databricks.

Выразить версию Scala артефакта с помощью %%

Если вы выражаете версию артефакта groupID %% artifactID % revision вместо groupID % artifactID % revision (разница является удвоенной %% после groupID ), SBT добавит версию Scala проекта к имени артефакта.

Пример

Предположим, scalaVersion для вашей сборки используется 2.9.1 . Вы можете написать версию артефакта % следующим образом:

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

Следующее использование %% идентично:

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

Примеры проектов

Ниже приведен Пример архива с минимальными примерами проектов, демонстрирующих компиляцию с помощью dbutils-api библиотеки для 3 общих средств сборки:

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

Эти команды создают выходные JAR в расположениях:

  • 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

Этот JAR-файл можно вложить в кластер в качестве библиотеки, перезапустить кластер, а затем запустить:

example.Test()

Эта инструкция создает мини-приложение ввода текста с меткой Hello: и начальным значением World.

Все остальные API можно использовать dbutils аналогичным образом.

Чтобы протестировать приложение, использующее dbutils объект за пределами модулями, можно создать макет dbutils объекта, вызвав:

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

Замените свой DBUtilsV1 экземпляр, в котором реализуются методы интерфейса, но вы хотите, например, создать локальную файловую систему макетное для dbutils.fs .

Ограничения

Вызов dbutils внутри исполнителей может привести к непредвиденным результатам. Сведения о исполнителях см. в разделе Обзор режима кластера на веб-сайте Apache Spark.