Поделиться через


Разработка, выполнение и управление записными книжками Microsoft Fabric

Записная книжка Microsoft Fabric — это основной элемент кода для разработки заданий Apache Spark и экспериментов машинного обучения. Это веб-интерактивная поверхность, используемая специалистами по обработке и анализу данных, для написания кода с помощью расширенных визуализаций и текста Markdown. В этой статье объясняется, как разрабатывать записные книжки с помощью операций с ячейками кода и запускать их.

Создание записных книжек

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

Мы предоставляем обширные возможности для разработки блокнотов.

Добавление ячейки

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

  1. Наведите указатель мыши между двумя ячейками и выберите Код или Markdown.

  2. Используйте сочетания клавиш в командном режиме. Нажмите клавишу A, чтобы вставить ячейку над текущей ячейкой. Нажмите клавишу B, чтобы вставить ячейку под текущей ячейкой.

Установка основного языка

Записные книжки Fabric в настоящее время поддерживают четыре языка Apache Spark:

  • PySpark (Python)
  • Spark: Scala
  • Spark SQL
  • SparkR

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

Использование нескольких языков

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

Снимок экрана: пример волшебной команды языка, введенной в начале ячейки.

Волшебная команда Язык Описание
%%pyspark Питон Выполните запрос на языке Python к контексту Apache Spark.
%%spark язык программирования Scala Выполните запрос на Scala в контексте Apache Spark.
%%sql SparkSQL Выполните запрос SparkSQL к контексту Apache Spark.
%%html Html Выполните html-запрос к контексту Apache Spark.
%%sparkr Р Выполните R-запрос в контексте Apache Spark.

IntelliSense в стиле IDE

Блокноты Fabric интегрированы с редактором Monaco, чтобы предоставить возможности IntelliSense в редакторе ячеек в стиле IDE. Выделение синтаксиса, маркер ошибки и автоматическое завершение кода помогают быстро писать код и выявлять проблемы.

Возможности IntelliSense находятся на разных уровнях зрелости для разных языков. В следующей таблице показано, что поддерживает Fabric:

Языки Выделение синтаксиса Маркер синтаксической ошибки Завершение синтаксиса кода Завершение кода переменной Завершение кода системной функции Завершение кода пользовательской функции Умный отступ Сворачивание кода
PySpark (Python) Да Да Да Да Да Да Да Да
Питон Да Да Да Да Да Да Да Да
Spark: Scala Да Да Да Да Да Да Да Да
SparkSQL Да Да Да Да Да Нет Да Да
SparkR Да Да Да Да Да Да Да Да
T-SQL Да Да Да Нет Да Да Да Да

Примечание.

Для использования автозавершения кода IntelliSense необходимо иметь активный сеанс Apache Spark.

Улучшение разработки Python с помощью Pylance

Примечание.

В настоящее время эта функция доступна в предварительной версии.

Теперь Pylance, мощный и многофункциональный языковой сервер, доступен в блокноте Fabric. Pylance упрощает разработку Python с помощью смарт-завершения, улучшения обнаружения ошибок и улучшения аналитики кода. К ключевым улучшениям относятся более умное автозавершение, улучшенная поддержка лямбда-функций, предложения параметров, улучшенные подсказки при наведении, улучшенная отрисовка строк документации и выделение ошибок. При использовании Pylance написание кода Python и PySpark становится более быстрым, более точным и более эффективным.

Фрагменты кода

Записные книжки Fabric предоставляют фрагменты кода, которые помогают легко писать часто используемые шаблоны кода, например:

  • Чтение данных в формате DataFrame Apache Spark
  • Рисование диаграмм с помощью Matplotlib

Фрагменты появляются в сочетаниях клавиш IntelliSense в стиле IDE, смешиваясь с другими предложениями. Содержимое фрагмента кода соответствует языку ячейки кода. Доступные фрагменты можно увидеть, введя фрагмент кода. Вы также можете ввести любое ключевое слово, чтобы просмотреть список соответствующих фрагментов. Например, если вы вводите чтение, вы увидите список фрагментов для чтения данных из различных источников данных.

Анимированный GIF фрагментов кода.

Перетащите фрагменты, чтобы вставить их.

Используйте функцию перетаскивания, чтобы удобно считывать данные из Lakehouse explorer. Здесь поддерживается несколько типов файлов; можно работать с текстовыми файлами, таблицами, изображениями и т. д. Вы можете переместить файлы в существующую ячейку или в новую. Записная книжка создает фрагмент кода соответствующим образом для предварительного просмотра данных.

Анимированный GIF, демонстрирующий перетаскивание для вставки фрагментов.

Перетащите изображения для вставки

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

Анимированный GIF перетаскивания и опускания для вставки изображений.

Форматирование текстовой ячейки с помощью кнопок панели инструментов

Чтобы выполнить распространенные действия markdown, используйте кнопки форматирования на панели инструментов текстовой ячейки.

Снимок экрана: панель инструментов форматирования текста.

Отмена или повторное выполнение операций с ячейками

Выберите Отменить или Повторить, или нажмите Z или Shift+Z, чтобы отменить последние изменения в ячейке. Вы можете отменить или повторить до 10 последних операций с ячейками из истории.

Снимок экрана: параметры меню отмены и повтора.

Поддерживаемые операции отмены для ячеек

  • Вставка или удаление ячейки. Вы можете отменить удаленные операции, выбрав Отменить (текстовое содержимое остается вместе с ячейкой).
  • Переставить ячейку.
  • Переключить параметр.
  • Переключение между ячейкой кода и ячейкой Markdown.

Примечание.

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

Перемещение ячейки

Вы можете перетащить из пустой части ячейки и переместить в желаемое место.

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

Снимок экрана: параметры перемещения ячейки.

Удаление ячейки

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

Вы также можете использовать сочетания клавиш в командном режиме. Нажмите Shift+D, чтобы удалить текущую ячейку.

Свернуть ввод ячейки

Выберите многоточие "Дополнительные команды" (...) на панели инструментов ячейки и Скрыть ввод, чтобы свернуть ввод текущей ячейки. Чтобы развернуть его снова, выберите Показать ввод, когда ячейка свернута.

Свернуть вывод ячейки

Выберите многоточие 'Дополнительные команды' на панели инструментов ячейки и Скрыть выходные данные, чтобы свернуть исходные данные текущей ячейки. Чтобы развернуть его снова, выберите "Показать выходные данные" при свернутых результатах ячейки.

Безопасность выходных данных ячеек

С помощью ролей доступа к данным OneLake (предварительная версия) пользователи могут настроить доступ только к определённым папкам в Lakehouse во время выполнения запросов в блокноте. Пользователи без доступа к папке или таблице видят несанкционированную ошибку во время выполнения запроса.

Внимание

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

Блокировка или замораживание ячейки

Операции блокировки и замораживания ячеек позволяют создавать ячейки только для чтения или останавливать выполнение ячеек кода отдельно.

Анимированный GIF-файл блокировки или замораживания ячейки.

Объединение и разделение ячеек

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

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

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

Содержимое записной книжки

Выбор контуров или оглавления отображает первый заголовок markdown любой ячейки Markdown в окне на боковой панели для быстрой навигации. Боковая панель "Контуры" может изменяться и сворачиваема, чтобы лучше всего соответствовать экрану. Нажмите кнопку "Содержимое " на панели команд записной книжки, чтобы открыть или скрыть боковую панель.

Снимок экрана: место выбора параметра

Свертывание текста в формате Markdown

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

Анимированный GIF-файл сворачивания Markdown.

Поиск и замена

Параметр поиска и замены поможет вам сопоставить ключевые слова или выражения в содержимом записной книжки. Вы также можете легко заменить целевую строку новой строкой.

Снимок экрана: область поиска и замены.

Завершение встроенного кода Copilot (предварительная версия)

Встроенное завершение кода Copilot — это функция на базе ИИ, которая помогает быстрее и эффективнее писать код Python в Fabric Notebooks. Эта функция предоставляет интеллектуальные предложения кода с поддержкой контекста при вводе кода. Это сокращает повторяющиеся задачи, сводит к минимуму синтаксические ошибки и ускоряет разработку, бесшовно интегрируясь в рабочий процесс вашего ноутбука.

Ключевые преимущества

  • Завершения на основе искусственного интеллекта: Создает предложения на основе контекста записной книжки с помощью модели, обученной на миллионах строк кода.
  • Повышает производительность: Помогает создавать сложные функции, сокращает повторяющееся кодирование и ускоряет изучение незнакомых библиотек.
  • Уменьшает ошибки: Сводит к минимуму опечатки и синтаксические ошибки благодаря интеллектуальным, контекстно-зависимым завершениям.
  • Минимальная настройка: Записные книжки Fabric имеют встроенные функции и не требуют установки. Вы можете просто включить его и начать программирование.

Принцип работы

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

Снимок экрана, показывающий, как включить завершение кода в Copilot.

Снимок экрана, показывающий автоматическое дополнение кода с помощью Copilot.

Примечание.

Включение встроенного завершения кода Copilot потребляет дополнительные емкостные единицы.

Текущие ограничения

  • Функция автозавершения кода Copilot в настоящее время поддерживает язык Python и использует контекст предыдущих ячеек, а также схемы Lakehouse.
  • Рекомендации рассматривают данные из схем Lakehouse.
  • Используется только подмножество элементов схемы, если существует множество таблиц или столбцов.
  • Динамически созданные таблицы (через Spark) не распознаны в режиме реального времени.

Запуск ноутбуков

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

Запуск ячейки

Есть несколько способов запустить код в ячейке.

  • Наведите указатель мыши на ячейку, которую вы хотите запустить, и нажмите кнопку "Выполнить ячейку " или нажмите клавиши CTRL+ВВОД.

  • Используйте сочетания клавиш в командном режиме. Нажмите клавиши SHIFT+ВВОД , чтобы запустить текущую ячейку и выбрать следующую ячейку. Нажмите клавиши ALT+ВВОД , чтобы запустить текущую ячейку и вставить новую ячейку.

Запустить все ячейки

Нажмите кнопку "Запустить все ", чтобы запустить все ячейки в текущей записной книжке в последовательности.

Запустите все ячейки выше или ниже

Разверните раскрывающееся меню «Выполнить все», затем выберите «Выполнить ячейки выше», чтобы выполнить все ячейки над текущей последовательно. Выберите «Выполнить ячейки ниже», чтобы последовательно запустить текущую ячейку и все ячейки ниже нее.

Скриншот, показывающий параметры меню

Отменить выполнение всех запущенных ячеек

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

Остановить сеанс

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

Снимок экрана, на котором показано, где выбрать

Эталонный запуск

Справка по запуску ноутбука

Помимо notebookutils reference run API, можно также использовать %run <notebook name> магическую команду для ссылки на другой блокнот в контексте текущего блокнота. Все переменные, определенные в опорной записной книжке, доступны в текущей записной книжке. Магическая %run команда поддерживает вложенные вызовы, но не поддерживает рекурсивные вызовы. Вы получаете исключение, если глубина инструкции превышает пять.

Пример: %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }.

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

Примечание.

  • В настоящее время команда %run поддерживает только ссылочные записные книжки в одной рабочей области с текущей записной книжкой.
  • В настоящее время команда %run поддерживает только четыре типа значений параметров: int, float, bool и string. Операция замены переменной не поддерживается.
  • Команда %run не поддерживает вложенную ссылку с глубиной больше пяти.

Справка по запуску скрипта

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

%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]

Варианты:

  • -b/--builtin: этот параметр указывает, что команда находит и запускает указанный файл сценария из встроенных в записную книжку ресурсов.
  • -c/-current: этот параметр гарантирует, что команда всегда использует встроенные ресурсы текущей записной книжки, даже если текущая записная книжка ссылается на другие записные книжки.

Примеры:

  • Чтобы запустить script_file.py из встроенных ресурсов, выполните следующие действия.%run -b script_file.py

  • Чтобы запустить script_file.sql из встроенных ресурсов, выполните следующие действия.%run -b script_file.sql

  • Чтобы запустить script_file.py из встроенных ресурсов с определенными переменными: %run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Примечание.

Если команда не содержит -b/--builtin, она пытается найти и выполнить элемент записной книжки в той же рабочей области, а не из стандартных ресурсов.

Пример использования для вложенного сценария выполнения:

  • Предположим, у нас есть две записные книжки.
    • Notebook1: содержит script_file1.py в встроенных ресурсах
    • Notebook2: содержит script_file2.py в встроенных ресурсах
  • Давайте будем использовать Notebook1 в качестве корневой записной книжки с содержимым: %run Notebook2
  • Затем в Notebook2 инструкция по использованию:
    • Чтобы запустить script_file1.py в Notebook1(корневая записная книжка), код будет следующим: %run -b script_file1.py
    • Чтобы запустить script_file2.py в Notebook2(текущий Notebook), код будет следующим: %run -b -c script_file2.py

Обозреватель переменных

Записные книжки Fabric предоставляют встроенный инструмент для просмотра переменных, который отображает список имён переменных, их типа, длины и значения в текущем сеансе Spark для ячеек PySpark (Python). Дополнительные переменные отображаются автоматически, так как они определены в ячейках кода. Нажатие на каждый заголовок столбца сортирует переменные в таблице.

Чтобы открыть или скрыть обозреватель переменных, выберите Переменные на ленте записной книжки в разделе Просмотр.

Снимок экрана: место открытия переменных.

Примечание.

Обозреватель переменных поддерживает только Python.

Индикатор состояния ячейки

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

Снимок экрана: пример сведений о состоянии запуска ячейки.

Индикатор состояния сеанса

Настройка времени ожидания сеанса

В левом нижнем углу можно выбрать состояние сеанса, чтобы получить дополнительные сведения о текущем сеансе:

Снимок экрана: сведения о сеансе.

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

Снимок экрана, показывающий таймаут сеанса.

Выберите, как долго вы хотите, чтобы сеанс был непрерывным, и нажмите "Применить". Время ожидания сеанса сбрасывается с новым значением, и все в порядке!

Вы также можете задать время ожидания, как описано в:

Оставаться в системе: При входе в систему, если отображается диалоговое окно "Оставаться в системе", выберите Да, чтобы отключить тайм-аут неактивного сеанса для текущего сеанса.

Внимание

Не выбирайте флажок "Не показывать это снова, так как это навсегда закрепит настройки входа. Обратите внимание, что этот параметр может не отображаться, если администратор арендатора отключил настройку "Оставаться в системе" (KMSI).

Запрос изменения политики: Если вам нужна большая продолжительность сеанса, попросите администратора арендатора продлить политику длительности времени простоя сеанса. Это можно сделать, перейдя к настройкам организации > Безопасность и конфиденциальность > Таймаут простоя сеанса в Центре администрирования M365.

Примечание.

При выборе KMSI и/или продлении времени бездействия сеанса увеличивается риск доступа к разблокированному компьютеру.

Как ABT и тайм-аут неактивного сеанса влияют на длительные выполнения ноутбуков Fabric?

Если у арендатора используется система ожидания на основе активности (ABT), длительные интерактивные задачи в блокнотах Fabric могут быть затронуты политикой времени ожидания неактивного сеанса в Microsoft 365. Эта функция безопасности предназначена для выхода пользователей на неактивных неуправляемых устройствах, даже если задание записной книжки по-прежнему выполняется. Несмотря на то что действия в других приложениях Microsoft 365 могут поддерживать активный сеанс, неактивные устройства автоматически выходят из системы.

Почему пользователи вышли даже когда задание ноутбука все еще выполняется?

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

Встроенный индикатор выполнения задания Apache Spark

Записная книжка Fabric основана на Apache Spark. Ячейки кода выполняются удаленно в кластере Apache Spark. Индикатор выполнения задания Spark включает в себя полосу прогресса в режиме реального времени, которая помогает понять статус выполнения задания. Количество задач на каждом задании или этапе помогает определить параллельный уровень задания Spark. Вы можете также углубиться в изучение интерфейса Spark для конкретного задания или этапа, выбрав ссылку с названием задания или этапа.

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

Снимок экрана: сведения о ходе выполнения заданий Spark.

В дополнительных действиях можно легко перейти на страницу сведенийо приложении Spark и страницу веб-интерфейса Spark.

Скриншот с подробностями дополнительных действий.

Редактирование секретов

Чтобы предотвратить случайную утечку учетных данных при выполнении записных книжек, записные книжки Fabric поддерживают маскировку секрета для замены значений секретов, отображаемых в выходных данных ячейки [REDACTED]. Секретное редактирование применимо для Python, Scala и R.

Скриншот сокрытия информации.

Волшебные команды в записной книжке

Встроенные магические команды

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

Примечание.

Это единственные магические команды, поддерживаемые в конвейере Fabric: %%pyspark, %%spark, %%csharp, %%sql, %%configure.

Доступные команды магии строк: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logon, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, %rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %whos, %xdel, %xmode.

Ноутбук Fabric также поддерживает усовершенствованные команды управления библиотеками %pip и %conda. Дополнительные сведения об использовании см. в разделе "Управление библиотеками Apache Spark" в Microsoft Fabric.

Доступные магические команды ячеек: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.

Пользовательские специальные команды

Вы также можете создавать более настраиваемые волшебные команды для ваших конкретных нужд. Приведем пример:

  1. Создайте записную книжку с именем MyLakehouseModule.

    Скриншот для определения пользовательской магии.

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

    Скриншот пользовательской магии в действии.

Мини-приложения IPython

Мини-приложения IPython — это объекты Python с событиями, которые имеют представление в браузере. Мини-приложения IPython можно использовать как элементы управления с низким кодом (например, ползунок или текстовое поле) в записной книжке, как и записная книжка Jupyter. В настоящее время он работает только в контексте Python.

Использование мини-приложений IPython

  1. Сначала импортируйте модуль ipywidgets, чтобы использовать платформу Мини-приложения Jupyter.

    import ipywidgets as widgets
    
  2. Используйте функцию отображения верхнего уровня, чтобы отобразить мини-приложение или оставить выражение типа мини-приложения в последней строке ячейки кода.

    slider = widgets.IntSlider()
    display(slider)
    
  3. Запустите ячейку. Виджет отображается в области вывода.

    slider = widgets.IntSlider()
    display(slider)
    

    Снимок экрана виджета, отображаемого в области вывода.

  4. Используйте несколько вызовов display() для отображения одного экземпляра мини-приложения несколько раз. Они остаются синхронизированы друг с другом.

    slider = widgets.IntSlider()
    display(slider)
    display(slider)
    

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

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

    slider1 = widgets.IntSlider()
    slider2 = widgets.IntSlider()
    display(slider1)
    display(slider2)
    

    Снимок экрана: несколько экземпляров мини-приложений.

Поддерживаемые мини-приложения

Тип мини-приложений Мини-приложения
Числовые виджеты IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Логические виджеты Переключатель, Флажок, Действительный
Виджеты выбора Выпадающий список, Переключатели, Выбор, Слайдер выбора, Слайдер диапазона выбора, Кнопки переключения, Множественный выбор
Виджеты строк Текст, Текстовое поле, Выпадающий список, Пароль, Метка, HTML, HTML Math, Изображение, Кнопка
Мини-приложения для активизации анимаций Выбор даты, Выбор цвета, Контроллер
Виджеты контейнера или макета Контейнер, Горизонтальный контейнер, Вертикальный контейнер, Таблица, Аккордеон, Вкладки, Слои

Известные ограничения

  • Следующие мини-приложения пока не поддерживаются. Доступны следующие обходные пути.

    Функция Обходное решение
    Виджет вывода Вместо этого можно использовать функцию print() для записи текста в stdout.
    widgets.jslink() Функцию widgets.link() можно использовать для связывания двух аналогичных мини-приложений.
    Мини-приложение FileUpload Функция пока не поддерживается.
  • Функция глобального отображения Fabric не поддерживает отображение нескольких мини-приложений в одном вызове (например, display(a, b)). Это поведение отличается от функции display в IPython.

  • Если закрыть записную книжку, содержащую мини-приложение IPython, вы не сможете видеть или взаимодействовать с ней, пока не будет выполнена соответствующая ячейка еще раз.

  • Функция взаимодействия (ipywidgets.interact) не поддерживается.

Интегрировать записную книжку

Назначение ячейки параметров

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

Снимок экрана, показывающий, где выбрать опцию параметра Toggle.

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

Присвоение значений параметрам из конвейера

После создания блокнота с параметрами его можно запустить из процесса с активностью блокнота Fabric. После добавления действия на холст конвейера, можно задать значения параметров в разделе "Базовые параметры" на вкладке "Настройки".

Снимок экрана: место назначения значений параметров из конвейера.

При назначении значений параметров можно использовать язык выражений конвейера или функции и переменные.

Магическая команда для настройки сеанса Spark

Вы можете персонализировать сеанс Spark с помощью волшебной команды %%configure. Ноутбук Fabric поддерживает настраиваемые vCores, память драйвера и исполнителя, свойства Apache Spark, точки монтирования, пул и озеро данных по умолчанию для сессии ноутбука. Их можно использовать как в интерактивных блокнотах, так и в блокнотах конвейера. Рекомендуется запустить команду %%configure в начале вашей записной книжки, или вам нужно будет перезапустить сеанс Spark, чтобы настройки вступили в силу.

%%configure
{
    // You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
    "driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g"]
    "driverCores": 4, // Recommended values: [4, 8, 16, 32, 64]
    "executorMemory": "28g",
    "executorCores": 4,
    "jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":
    {
        // Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows": "3000",
        "spark.log.level": "ALL"
    },
    "defaultLakehouse": {  // This overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
    "environment": {
        "id": "<environment-id>",
        "name": "<environment-name>"
    },
    "sessionTimeoutInSeconds": 1200,
    "useStarterPool": false,  // Set to true to force using starter pool
    "useWorkspacePool": "<workspace-pool-name>"
}

Примечание.

  • Рекомендуется задать одно и то же значение для DriverMemory и ExecutorMemory в %%configure. Значения driverCores и "executorCores" также должны совпадать.
  • Свойство "defaultLakehouse" перезаписывает закрепленный "lakehouse" в просмотре Lakehouse, но это работает только в текущем сеансе работы с записной книжкой.
  • Вы можете использовать %%configure в конвейерах Fabric, но если он не задан в первой ячейке кода, запуск конвейера завершается сбоем из-за невозможности перезапуска сеанса.
  • %%configure, используемый в notebookutils.notebook.run, будет игнорироваться, но используется в %run notebook и продолжит выполняться.
  • Стандартные свойства конфигурации Spark должны использоваться в секции 'conf'. Структура не поддерживает ссылку на первый уровень для свойств конфигурации Spark.
  • Некоторые специальные свойства Spark, включая spark.driver.cores, spark.executor.cores, spark.driver.memory, spark.executor.memory и spark.executor.instances, не вступают в силу в разделе конфигурации conf.

Параметризованная конфигурация сеанса из потока

Параметризованная конфигурация сеанса позволяет заменить значение в команде %%configure magic параметрами активности выполнения записной книжки конвейера. При подготовке ячейки кода %%configure вы можете переопределить значения по умолчанию (также настраиваемые, 4 и "2000" в приведенном ниже примере) с помощью следующего объекта.

{
      "parameterName": "paramterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
} 
%%configure  

{ 
    "driverCores": 
    { 
        "parameterName": "driverCoresFromNotebookActivity", 
        "defaultValue": 4 
    }, 
    "conf": 
    { 
        "livy.rsc.sql.num-rows": 
        { 
            "parameterName": "rows", 
            "defaultValue": "2000" 
        } 
    } 
} 

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

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

Снимок экрана: место настройки параметризованного сеанса.

Если вы хотите изменить конфигурацию сеанса, названия параметров задания записной книжки конвейера должны совпадать с parameterName в записной книжке. В этом примере запуска конвейера, driverCores в %%configure заменяются на 8, и livy.rsc.sql.num-rows заменяются на 4000.

Примечание.

  • Если запуск конвейера завершается сбоем из-за использования команды %%configure magic, найдите дополнительные сведения об ошибке, запустив магическую ячейку %%configure в интерактивном режиме блокнота.
  • Запланированные запуски в Notebook не поддерживают параметризованную конфигурацию сеанса.

Ведение журнала Python в блокноте

Логи Python можно найти и задать различные уровни ведения журнала и формат, как показано в примере кода здесь.

import logging

# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
    handler.setFormatter(formatter)

# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Просмотр журнала входных команд

Интерактивная записная книжка Fabric поддерживает волшебную команду, которая позволяет печатать журнал входных команд %history, выполняемых в текущем сеансе. В отличие от стандартной команды Jupyter Ipython %history, эта команда работает в контексте нескольких языков в ноутбуке.

%history [-n] [range [range ...]]

Варианты:

  • -n: отобразить номер выполнения.

Диапазон может быть:

  • N: печать кода N-ой выполненной ячейки.
  • M-N: напечатать код из выполненных ячеек от Mth до Nth.

Пример:

  • Вывод журнала ввода от 1-й до 2-й выполненной ячейки: %history -n 1-2

Сочетания клавиш

Аналогично Jupyter Notebook, записные книжки Fabric имеют модальный пользовательский интерфейс. Клавиатура выполняет разные действия в зависимости от того, в каком режиме находится ячейка записной книжки. Записные книжки Fabric поддерживают следующие два режима для заданной ячейки кода: режим команд и режим редактирования.

  • Ячейка находится в режиме командной строки, когда текстовый курсор не запрашивает ввод. Когда ячейка находится в командном режиме, вы можете редактировать тетрадь целиком, но не можете вводить текст в отдельные ячейки. Введите режим команд, нажав клавишу ESC или используя мышь, чтобы выбрать вне области редактора ячейки.

    Снимок экрана: ячейка в режиме команд.

  • Режим редактирования может быть обозначен наличием текстового курсора, который подсказывает начать ввод в области редактора. Если ячейка находится в режиме редактирования, можно вводить текст в ячейку. Введите режим редактирования, нажав клавишу ВВОД или используя мышь, чтобы выбрать область редактора ячейки.

    Снимок экрана: ячейка в режиме редактирования.

Сочетания клавиш в командном режиме

Действие Сочетания клавиш для ноутбука
Запустите текущую ячейку, а затем выберите ниже SHIFT+ENTER
Запустите текущую ячейку и добавьте ниже Alt+Ввод
Запустить текущую ячейку Ctrl+Ввод
Выберите ячейку выше Вверх
Выбор ячейки ниже Вниз
Выбор предыдущей ячейки К
Выбор следующей ячейки J
Вставить ячейку выше А
Вставка ячейки ниже Б
Удаление выбранных ячеек SHIFT +D
Переключение в режим правки Введите

Горячие клавиши в режиме редактирования

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

Действие Сочетания клавиш для ноутбука
Перемещение курсора вверх Вверх
Перемещение курсора вниз Вниз
Отменить CTRL+Z
Переделать CTRL+Y
Закомментировать или раскомментировать CTRL+ /
Комментарий: CTRL + K + C
Раскомментируйте: Ctrl + K + U
Удалить слово перед Ctrl+Backspace
Удалите слово после Ctrl (Управление) + Delete
Перейти к началу ячейки CTRL+Главная
Перейти к концу ячейки Ctrl + Конец
Сдвиньтесь на одно слово влево Ctrl + Влево
Перейти на одно слово вправо Ctrl+Вправо
Выбрать все CTRL + A
Отступ CTRL+ ]
Понижение уровня CTRL+ [
Переключение в режим команд Клавиша Esc

Чтобы найти все сочетания клавиш, выберите "Вид" на ленте записной книжки, а затем выберите "Назначения клавиш".