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

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

Важно!

Microsoft Fabric в настоящее время находится на этапе предварительной версии. Эти сведения относятся к предварительной версии продукта, который может быть существенно изменен перед выпуском. Корпорация Майкрософт не дает никаких гарантий, явных или подразумеваемых, в отношении предоставленной здесь информации.

Разработка записных книжек

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

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

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

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

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

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

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

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

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

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

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

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

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

Магические команды Язык Описание
%%pyspark Python Выполните запрос Python к контексту Spark.
%%spark Scala Выполните запрос Scala к контексту Spark.
%%sql SparkSQL Выполните запрос SparkSQL к контексту Spark.
%%html Html Выполнение HTML-запроса к контексту Spark.
%%sparkr R Выполнение запроса R к контексту Spark.

На следующем рисунке показан пример того, как можно написать запрос PySpark с помощью магической команды %%pyspark в записной книжке Spark (Scala). Обратите внимание, что основным языком для записной книжки является PySpark.

Функция IntelliSense в IDE

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

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

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

Примечание

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

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

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

  • Чтение данных в виде кадра данных Spark или
  • Рисование диаграмм с помощью Matplotlib.

Фрагменты появляются в разделе Сочетания клавиш IntelliSense в стиле IDE вместе с другими предложениями. Содержимое фрагментов кода соответствует языку ячеек с кодом. Чтобы просмотреть доступные фрагменты кода, введите слово Snippet (фрагмент кода) или любое ключевое слово, указанное в заголовке фрагмента кода в редакторе ячеек с кодом. Например, при вводе слова read можно просмотреть список фрагментов кода для чтения данных из разных источников данных.

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

Перетаскивание для вставки фрагментов

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

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

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

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

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

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

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

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

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

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

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

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

  • Вставка или удаление ячейки. Операции удаления можно отменить, нажав кнопку Отменить. Текстовое содержимое сохраняется вместе с ячейкой.
  • Реорганизовать ячейку.
  • Переключить параметр.
  • Преобразование между ячейкой кода и ячейкой Markdown.

Примечание

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

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

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

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

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

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

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

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

Сворачивание входных данных ячейки

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

Сворачивание выходных данных ячейки

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

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

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

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

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

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

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

Свертывание Markdown

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

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

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

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

Запуск записных книжек

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

Выполнение ячейки

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

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

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

Выполнение всех ячеек

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

Выполнение всех ячеек выше или ниже

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

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

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

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

Остановка сеанса

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

Снимок экрана: выбор пункта Отмена всех запусков и остановка сеанса.

Выполнение справочника по записной книжке

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

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

Справочник по записной книжке работает как в интерактивном режиме, так и в конвейере.

Примечание

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

Скрытие секретов

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

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

Магические команды в записной книжке

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

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

Примечание

В конвейере Fabric поддерживаются только следующие магические команды: %%pyspark, %%spark, %%csharp, %%sql.

Доступные магии строк: %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, %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, %who's, %xdel, %xmode.

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

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

Пользовательские магии

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

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

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

  1. В другой записной книжке составьте ссылку "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
Логические мини-приложения ToggleButton, Checkbox, Valid
Мини-приложения выбора Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Строковые мини-приложения Text, Text area, Combobox, Password, Label, HTML, HTML Math, Image, Button
Мини-приложения воспроизведения (анимации) Date picker, Color picker, Controller
Мини-приложения контейнера или макета Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked

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

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

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

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

Ведение журнала Python в Notebook

Вы можете найти журналы 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")

Интеграция записной книжки

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

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

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

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

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

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

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

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

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

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

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

Действие Ярлыки записных книжек
Запуск текущей ячейки и выбор ниже SHIFT+ВВОД
Запуск текущей ячейки и вставка ниже ALT+ВВОД
Выполнение текущей ячейки Ctrl+ВВОД
Выбор ячейки выше Вверх
Выбор ячейки ниже Вниз
Выбор предыдущей ячейки K
Выбор следующей ячейки J
Вставка ячейки выше Объект
Вставка ячейки ниже B
Удаление выбранных ячеек SHIFT+D
Переключение в режим правки Введите:

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

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

Действие Ярлыки записных книжек
Перемещение курсора вверх Вверх
Перемещение курсора вниз Вниз
Отмена Ctrl+Z
Повторить CTRL+Y
Комментарий или раскомментировать Ctrl+/
Удаление слова перед Ctrl+Backspace
Удаление слова после Ctrl+Delete
Переход к началу ячейки Ctrl+Home
Передох к концу ячейки Ctrl+End
Переход на одно слово влево Ctrl+Left
Переход на одно слово вправо Ctrl+Right
Выбрать все Ctrl+A
Отступ Ctrl+]
Понижение уровня Ctrl+[
Переключение в режим команд ESC

Вы можете легко найти все сочетания клавиш из ленты записной книжки View ->Keybindings.

Дальнейшие действия