Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описывается разработка кода в записных книжках Databricks, включая форматирование кода, автозавершение, сочетание языков и магических команд.
Дополнительные сведения о расширенных функциональных возможностях, доступных в редакторе, таких как автозаполнение, выбор переменных, поддержка нескольких курсоров и параллельные диффы, см. в разделе Навигация по записной книжке Databricks и редактору файлов.
При использовании записной книжки или редактора файлов помощник Databricks доступен для создания, объяснения и отладки кода. Дополнительные сведения см. в разделе "Использование помощника по Databricks".
Записные книжки Databricks также включают встроенный интерактивный отладчик для записных книжек Python. Смотрите Отладка ноутбуков.
Внимание
Записная книжка должна быть присоединена к активному сеансу вычислений для функций помощи в коде, включая автозавершение, форматирование кода Python и отладчик.
Модульное разбиение кода
С помощью Databricks Runtime 11.3 LTS и более поздних версий вы можете создавать и управлять файлами исходного кода в рабочей области Azure Databricks, а затем импортировать эти файлы в записные книжки по мере необходимости.
Дополнительные сведения о работе с файлами исходного кода см. в материалах «Совместное использование кода между ноутбуками Databricks» и «Работа с модулями Python и R».
Форматирование ячеек кода
Azure Databricks предоставляет средства, позволяющие быстро и легко форматировать код Python и SQL в ячейках записной книжки. Эти инструменты снижают затраты на поддержание форматирования кода и помогают обеспечивать соблюдение единых стандартов кодирования в ваших записных книжках.
Библиотека черного форматирования Python
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
Azure Databricks поддерживает форматирование кода Python с помощью черного цвета в записной книжке. Записная книжка должна быть подключена к кластеру с установленными пакетами blacktokenize-rt Python.
На Databricks Runtime 11.3 LTS и более поздних версиях Azure Databricks предварительно устанавливает black и tokenize-rt. Вы можете использовать средство форматирования напрямую без необходимости устанавливать эти библиотеки.
В Databricks Runtime 10.4 LTS и более ранних версиях необходимо установить black==22.3.0 и tokenize-rt==4.2.1 из PyPI на ноутбук или кластер, чтобы использовать средство форматирования Python. В записной книжке можно выполнить следующую команду:
%pip install black==22.3.0 tokenize-rt==4.2.1
или установите библиотеку в кластере.
Дополнительные сведения об установке библиотек см. в разделе "Управление средой Python".
Для файлов и записных книжек в папках Databricks Git можно настроить средство форматирования Python на основе файла pyproject.toml. Чтобы использовать эту функцию, создайте файл pyproject.toml в корневом каталоге Git и настройте его в соответствии с форматом конфигурации Black. Измените раздел [tool.black] в файле. Конфигурация применяется при форматировании любого файла и записной книжки в этой папке Git.
Форматирование ячеек Python и SQL
Для форматирования кода необходимо иметь разрешение CAN EDIT в записной книжке.
Azure Databricks использует настраиваемый модуль форматирования SQL для форматирования SQL и черного формата кода для Python.
Форматировщик можно активировать следующими способами:
Форматирование одной ячейки
- Сочетание клавиш: CMD + SHIFT + F.
- Контекстное меню команд:
- Форматирование ячейки SQL: выберите Формат SQL в раскрывающемся меню контекста команды ячейки SQL. Этот пункт меню отображается только в ячейках записной книжки SQL или с
%sqlмагией языка. - Форматирование ячейки Python: выберите Формат Python в контекстном меню ячейки Python. Этот пункт меню отображается только в ячейках записной книжки Python или в тех, где используются языковые магические команды.
- Форматирование ячейки SQL: выберите Формат SQL в раскрывающемся меню контекста команды ячейки SQL. Этот пункт меню отображается только в ячейках записной книжки SQL или с
- Меню «Изменить» записной книжки: выберите ячейку Python или SQL, а затем выберите >.
Форматирование нескольких ячеек
Выберите несколько ячеек и затем выберите Изменить > Формат ячеек. Если выбрать ячейки нескольких языков, отформатируются только ячейки SQL и Python. Это включает те, которые используют
%sqlи%python.Форматирование всех ячеек Python и SQL в записной книжке
Выберите Изменение > Формат блокнота. Если записная книжка содержит несколько языков, отформатируются только ячейки SQL и Python. Это включает те, которые используют
%sqlи%python.
Чтобы настроить форматирование запросов SQL, см. инструкции пользовательского формата SQL.
Ограничения форматирования кода
- Black применяет стандарты PEP 8 для отступа в 4 пробела. Настройка отступа невозможна.
- Форматирование внедренных строк Python в UDF SQL не поддерживается. Аналогичным образом форматирование строк SQL в UDF Python не поддерживается.
Языки кода в записных книжках
Задать язык по умолчанию
Язык по умолчанию для записной книжки отображается под именем записной книжки.
Чтобы изменить язык по умолчанию, нажмите кнопку языка и выберите новый язык в раскрывающемся меню. Чтобы обеспечить продолжение работы существующих команд, к командам предыдущего языка по умолчанию автоматически добавляется префикс магической команды языка.
Использование нескольких языков
По умолчанию в ячейках используется язык записной книжки по умолчанию. Вы можете переопределить язык по умолчанию в ячейке, нажав кнопку языка и выбрав язык в раскрывающемся меню.
Вы также можете использовать магическую команду языка %<language> в начале ячейки. Поддерживаемые магические команды: %python, %r, %scala и %sql.
Примечание.
При вызове магической команды языка программирования команда отправляется в REPL в контексте выполнения записной книжки. Переменные, определенные на одном языке (и, следовательно, в REPL для этого языка), недоступны в REPL на другом языке. REPL могут предоставлять общий доступ к состоянию только через внешние ресурсы, такие как файлы в DBFS или объекты в хранилище объектов.
Ноутбуки также поддерживают несколько вспомогательных магических команд:
-
%shпозволяет запускать код оболочки в ноутбуке. Для сбоя ячейки, если команда оболочки имеет состояние выхода, отличное от нуля, добавьте параметр-e. Эта команда выполняется только на драйвере программы Apache Spark, а не на рабочих узлах. Чтобы выполнить команду оболочки на всех узлах, используйте скрипт инициализации. -
%fsпозволяет использовать команды файловой системыdbutils. Например, чтобы запустить командуdbutils.fs.lsдля перечисления файлов, можно указать%fs ls. Дополнительные сведения см. в статье "Работа с файлами в Azure Databricks". -
%md: Позволяет включать различные типы документации, включая текст, изображения, математические формулы и уравнения. См. следующий раздел.
Выделение синтаксиса SQL и автозавершение в командах Python
Функции выделения синтаксиса и автозаполнения SQL доступны при использовании SQL внутри команды Python, например в команде spark.sql.
Исследуйте результаты ячейки SQL
В блокноте Databricks результаты из ячейки SQL автоматически становятся доступными как неявная таблица данных, назначенная переменной _sqldf. Затем эту переменную можно использовать в любых ячейках Python и SQL, которые вы запускаете после этого, независимо от их положения в записной книжке.
Примечание.
Сейчас эта функция имеет следующие ограничения:
- Переменная
_sqldfнедоступна в записных книжках, использующих хранилище SQL для вычислений. - Использование
_sqldfв последующих ячейках Python поддерживается в Databricks Runtime 13.3 и выше. - Использование
_sqldfв последующих ячейках SQL поддерживается только в Databricks Runtime 14.3 и выше. - Если в запросе используются ключевые слова
CACHE TABLEилиUNCACHE TABLE_sqldfпеременная недоступна.
На снимке экрана ниже показано, как _sqldf можно использовать в последующих ячейках Python и SQL:
Внимание
Переменная _sqldf переназначается при каждом запуске ячейки SQL. Чтобы избежать потери ссылки на определенный результат DataFrame, назначьте его новому имени переменной перед запуском следующей ячейки SQL:
Питон
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
Параллельное выполнение ячеек SQL
Хотя команда выполняется и записная книжка подключена к интерактивному кластеру, вы можете одновременно запустить ячейку SQL с текущей командой. Ячейка SQL выполняется в новом параллельном сеансе.
Для параллельного выполнения ячейки:
Щелкните Запустить сейчас. Ячейка выполняется сразу.
Поскольку ячейка выполняется в новом сеансе, временные представления, пользовательские определяемые функции и имплицитные DataFrame Python (_sqldf) не поддерживаются в ячейках, выполняемых параллельно. Кроме того, во время параллельного выполнения используются каталог и имена баз данных по умолчанию. Если код ссылается на таблицу в другом каталоге или базе данных, необходимо указать имя таблицы с помощью трехуровневого пространства имен (catalog.schema.table).
Выполнение ячеек SQL в хранилище SQL
Команды SQL можно запускать в записной книжке Databricks на SQL-складе, который является типом вычислительных ресурсов, оптимизированных для аналитики SQL. Смотрите статью "Использование записной книжки с хранилищем SQL".
Использование магических команд
Записные книжки Databricks поддерживают различные магические команды, расширяющие функциональные возможности, выходящие за рамки стандартного синтаксиса, чтобы упростить распространенные задачи. Команды магии предваряются %, чтобы использовать магию строк и ячеек.
| Волшебная команда | Пример | Описание |
|---|---|---|
%python |
%pythonprint("Hello") |
Переключить язык ячейки на Python. Выполняет код Python в ячейке. |
%r |
%rprint("Hello") |
Переключите язык ячеек на R. Выполняет код R в ячейке. |
%scala |
%scalaprintln("Hello") |
Переключите язык ячеек на Scala. Выполняет код Scala в ячейке. |
%sql |
%sqlSELECT * FROM table |
Переключите язык ячейки на SQL. Результаты доступны как _sqldf в ячейках Python или SQL. |
%md |
%md# TitleContent here |
Переключите язык ячеек на Markdown. Отображает содержимое Markdown в ячейке. Поддерживает текст, изображения, формулы и LaTeX. |
%pip |
%pip install pandas |
Установите пакеты Python для определенной записной книжки. См. статью Библиотеки Python, привязанные к блокноту. |
%run |
%run /path/to/notebook |
Выполните другую записную книжку, импортируя ее функции и переменные. См. рабочие процессы Notebook. |
%fs |
%fs ls /path |
Выполните команды файловой системы dbutils. Короткое слово для dbutils.fs команд. См. статью "Работа с файлами". |
%sh |
%sh ls -la |
Выполните команды оболочки. Выполняется только на узле драйвера. Используется -e для сбоя при ошибке. |
%tensorboard |
%tensorboard --logdir /logs |
Отображение встроенного пользовательского интерфейса TensorBoard. Доступно только в Databricks Runtime ML. См. TensorBoard. |
%set_cell_max_output_size_in_mb |
%set_cell_max_output_size_in_mb 10 |
Задайте максимальный размер выходных данных ячейки. Диапазон: 1–20 МБ. Применяется ко всем последующим ячейкам записной книжки. |
%skip |
%skipprint("This won't run") |
Пропустить выполнение ячейки. Предотвращает выполнение ячейки при запуске записной книжки. |
Примечание.
IPython Automagic: ноутбуки Databricks имеют включенную по умолчанию автоматическую функцию IPython, которая позволяет некоторым командам pip работать без использования префикса %. Например, pip install pandas работает так же, как %pip install pandas.
Внимание
- Переменные и состояние изолированы между разными языковыми окружениями REPL. Например, переменные Python недоступны в ячейках Scala.
- Ячейка записной книжки может иметь только одну магическую команду ячейки, и она должна быть первой строкой ячейки.
-
%runдолжен находиться в отдельной ячейке, потому что он запускает всю записную книжку напрямую. - При использовании
%pipв Databricks Runtime 12.2 LTS и ниже, поместите все команды установки пакетов на начало записной книжки, так как состояние Python сбрасывается после установки.