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


Применение навыков Python в Jupyter Notebook

Заметка

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

Записная книжка Python — это новый интерфейс, созданный на основе записной книжки Fabric. Это универсальный и интерактивный инструмент, предназначенный для анализа данных, визуализации и машинного обучения. Он обеспечивает простой процесс разработки для написания и выполнения кода Python. Это делает его важным инструментом для специалистов по обработке и анализу данных, аналитиков и разработчиков бизнес-аналитиков, особенно для задач исследования, которые не требуют больших данных и распределенных вычислений.

С помощью записной книжки Python вы можете получить следующее:

  • несколько встроенных ядер Python: записные книжки Python предлагают чистую среду написания кода Python без Spark, с двумя версиями ядра Python — Python 3.10 и 3.11, доступными по умолчанию, и встроенными функциями ipython, поддерживаемыми такими как iPyWidget, магические команды.

  • Экономичность: Новая записная книжка Python предлагает преимущества экономии затрат, работая на одном узле кластера с 2 ядрами и 16 ГБ памяти по умолчанию. Это обеспечивает эффективное использование ресурсов для проектов исследования данных с меньшим размером данных.

  • Lakehouse & Resources доступны в нативном виде: Полная функциональность Fabric Lakehouse вместе со встроенными ресурсами доступна в записной книжке Python. Это позволяет пользователям легко перенести данные в записную книжку Python, просто попробуйте перетащить & удалить, чтобы получить фрагмент кода.

  • Смешивание программирования с T-SQL: записная книжка Python предлагает простой способ взаимодействия с конечными точками хранилища данных и SQL в обозревателе. Используя соединитель данных notebookutils, вы можете легко выполнять скрипты T-SQL в среде Python.

  • поддержка популярных библиотек аналитики данных: ноутбуки Python имеют предварительно установленные библиотеки, такие как DuckDB, Polars и Scikit-learn, обеспечивая комплексный набор средств для обработки данных, анализа и машинного обучения.

  • Advanced intellisense: ноутбук на Python использует Pylance в качестве интеллектуальной системы подсказок вместе с другими настраиваемыми языковыми службами Fabric, направленными на предоставление передовых возможностей кодирования для разработчиков ноутбуков.

  • NotebookUtils & семантическая связь: мощные наборы средств API позволяют легко использовать возможности Fabric и Power BI, сосредоточив внимание на работе с кодом.

  • Богатые возможности визуализации: За исключением популярных функций предварительного просмотра фреймов данных, таких как "Таблица" и "Диаграмма", мы также поддерживаем популярные библиотеки для визуализации, такие как Matplotlib, Seaborn и Plotly. PowerBIClient также поддерживает эти библиотеки, чтобы помочь пользователям лучше понять шаблоны данных и аналитические сведения.

  • общие возможности для записных книжек Fabric: все функции уровня записной книжки Fabric, вполне применимы для записной книжки Python, такие как функции редактирования, автосохранение, совместная работа, управление доступом и разрешениями, интеграция с Git, импорт/экспорт и т. д.

  • Возможности в области науки о данных полного стека: расширенный набор средств с низким кодом Data Wrangler, фреймворк для машинного обучения MLFlow и мощные возможности Copilot доступны в блокноте Python.

Как получить доступ к записной книжке Python

После открытия записной книжки Fabric можно перейти на Python в раскрывающемся меню языка на вкладке Главная и преобразовать всю настройку ноутбука в Python.

снимок экрана: переход на Python из языкового меню записной книжки.

На уровне записной книжки поддерживается большинство распространенных функций; для изучения подробного использования можно ознакомиться с Как использовать записные книжки Microsoft Fabric и Разработка, выполнение и управление записными книжками Microsoft Fabric. Здесь перечислены некоторые ключевые возможности, характерные для сценариев Python.

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

Записная книжка Python поддерживает несколько способов выполнения заданий:

  • Интерактивный запуск: Вы можете запускать записную книжку Python так же интерактивно, как нативную записную книжку Jupyter.
  • расписание выполнения: Вы можете использовать облегчённый планировщик на странице параметров ноутбука для запуска ноутбука Python в виде пакетной задачи.
  • запуск конвейера. Вы можете оркестрировать записные книжки Python в качестве активностей записной книжки в потоке данных. Моментальный снимок будет создан после выполнения задания.
  • ссылка на запуск. Вы можете использовать notebookutils.notebook.run() или notebookutils.notebook.runMultiple(), чтобы ссылаться на выполнение записных книжек Python в другой записной книжке Python как на пакетное задание. Снимок состояния будет создан после завершения эталонного запуска.
  • общедоступного API запуска: Вы можете запланировать запуск Python записной книжки с помощью API запуска записной книжки , убедитесь, что свойства языка и ядра в метаданных общедоступного API полезной нагрузки настроены правильно.

Вы можете отслеживать сведения о выполнении задания записной книжки Python на вкладке ленты запустить —>просмотреть все запуски.

Взаимодействие с данными

Вы можете взаимодействовать с Lakehouse, Хранилищами, конечными точками SQL и встроенными папками ресурсов в записной книжке Python.

Взаимодействие с Lakehouse

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

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

Заметка

Если при загрузке большого объема данных возникает ошибка OOM, попробуйте использовать фрейм данных DuckDB, Polars или PyArrow вместо pandas.

Операцию записи Lakehouse можно найти в фрагменте кода Обзор кода —>записи данных в разностную таблицу.

снимок экрана, показывающий операцию записи в lakehouse.

Взаимодействие с хранилищем и сочетание программирования с помощью T-SQL

Вы можете добавить склады данных или конечные точки SQL из обозревателя склада данных в ноутбуке. Аналогичным образом можно перетащить таблицы на холст записной книжки или использовать сочетания клавиш в раскрывающемся меню таблицы. Записная книжка автоматически создает фрагмент кода для вас. Служебные программы notebookutils.data можно использовать для установления подключения к хранилищам и запроса данных с помощью инструкции T-SQL в контексте Python.

снимок экрана: ярлыки таблиц хранилища.

Заметка

Конечные точки SQL доступны только для чтения.

Папка ресурсов записной книжки

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

Операции ядра

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

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

снимок экрана с операциями ядра.

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

Существуют команды, которые могут привести к смерти ядра. Например, quit(), exit().

Управление библиотеками

Для встроенных установок можно использовать команды %pip и %conda, команды поддерживают как общедоступные библиотеки, так и настраиваемые библиотеки.

Для настраиваемых библиотек можно загрузить файлы lib в папку встроенных ресурсов . Мы поддерживаем несколько типов библиотек, таких как .whl, .jar, .dll, .pyи т. д., просто попробуйте перетащить&в файл, и фрагмент кода создается автоматически.

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

Волшебная команда конфигурации сеанса

Аналогично персонализации конфигурации сеанса Spark в записной книжке, вы также можете использовать %%configure в записной книжке Python. Записная книжка Python поддерживает настройку размера вычислительного узла, точек монтирования и lakehouse по умолчанию сеанса записной книжки. Их можно использовать как в интерактивных блокнотах, так и в блокнотах конвейера. Мы рекомендуем использовать команду %%configure в начале записной книжки или перезапустить сеанс записной книжки, чтобы изменить параметры.

Ниже перечислены поддерживаемые свойства записной книжки Python %%configure:

%%configure
{
    "vCores": 4, // Recommended values: [4, 8, 16, 32, 64], Fabric will allocate matched memory according to the specified vCores.
    "defaultLakehouse": {  
        // Will 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>"
        },
    ],
}

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

снимок экрана: обновление вычислительных ресурсов.

NotebookUtils

Утилиты для записных книжек (NotebookUtils) — это встроенный пакет, помогающий легко выполнять распространенные задачи в среде Fabric Notebook. Он предварительно установлен в среде выполнения Python. NotebookUtils можно использовать для работы с файловыми системами, получения переменных среды, объединения и связывания ноутбуков, доступа к внешнему хранилищу и работы с конфиденциальными данными.

Вы можете использовать notebookutils.help() для перечисления доступных API, а также получения справки по методам или ссылки на документ NotebookUtils.

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

Заметка

  • В настоящее время эта функция доступна в предварительной версии.
  • Контракт API может измениться в ближайшем будущем.

С помощью служебных программ notebookutils.data можно установить подключение с предоставленным источником данных, а затем считывать и запрашивать данные с помощью инструкции T-SQL.

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

notebookutils.data.help()

Выпуск:

Help on module notebookutils.data in notebookutils:

NAME
    notebookutils.data - Utility for read/query data from connected data sources in Fabric

FUNCTIONS
    connect_to_artifact(artifact: str, workspace: str = '', artifact_type: str = None) -> pyodbc.Connection
        Establishes and returns an ODBC connection to a specified artifact within a workspace 
        for subsequent data queries using T-SQL.
        
        :param artifact: The name or ID of the artifact to connect to.
        :param workspace:  Optional; The workspace in which the provided artifact is located, if not provided,
                             use the workspace where the current notebook is located.
        :param artifactType: Optional; The type of the artifact, Currently supported type are Lakehouse, Warehouse and MirroredDatabase. 
                                If not provided, the method will try to determine the type automatically.
        :return: A connection object to the specified artifact.
        
        :raises UnsupportedArtifactException: If the specified artifact type is not supported to connect.
        :raises ArtifactNotFoundException: If the specified artifact is not found within the workspace.
        
        Examples:
            sql_query = "SELECT DB_NAME()"
            with notebookutils.data.connect_to_artifact("ARTIFACT_NAME_OR_ID", "WORKSPACE_ID", "ARTIFACT_TYPE") as conn:
                cursor = conn.cursor()
                cursor.execute(sql_query)
                rows = cursor.fetchall()
                for row in rows:
                    print(row)
    
    help(method_name=None)
        Provides help for the notebookutils.data module or the specified method.
        
        Examples:
        notebookutils.data.help()
        notebookutils.data.help("connect_to_artifact")
        :param method_name: The name of the method to get help with.

DATA
    __all__ = ['help', 'connect_to_artifact']

FILE
    /home/trusted-service-user/jupyter-env/python3.11/lib/python3.11/site-packages/notebookutils/data.py

Запрос данных из Lakehouse

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

Запрос данных из хранилища

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

Заметка

  • Служебные программы для работы с данными в NotebookUtils доступны только для записных книжек на Python.
  • Известное ограничение. Для API connect_to_artifact возвращенный объект conn внутренне инициализирует маркер PBI для проверки подлинности пользователя при подключении к источнику данных. Однако он не поддерживает обновление токена. В настоящее время маркер PBI действителен только в течение одного часа, любой запрос, превышающий один час, завершится ошибкой из-за проблемы с истечением срока действия маркера.

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

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

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

Семантическая связь — это функция, которая позволяет установить связь между семантическими моделями и Synapse Data Science в Microsoft Fabric. Это нативно поддерживается в среде Python Notebook. Инженеры бизнес-аналитики и разработчики Power BI могут легко подключать семантику к семантической модели и управлять ими. Чтобы узнать больше о семантической ссылке, прочитайте общедоступный документ .

Визуализация

Помимо рисования диаграмм с библиотеками встроенная функция визуализации позволяет превратить кадры данных в визуализации данных с расширенным форматом. Вы можете использовать функцию отображения display() на фреймах данных для создания представления в виде таблицы и диаграммы.

снимок экрана, демонстрирующий опыт визуализации в записной книжке Python.

Заметка

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

Код intelliSense

Записная книжка Python интегрировала Pylance для улучшения опыта написания кода на Python. Pylance — это служба языковой поддержки по умолчанию в Visual Studio Code. Он предоставляет множество простых функций, таких как выделение ключевых слов, быстрая информация, завершение кода, сведения о параметрах и обнаружение синтаксической ошибки. Кроме того, Pylance работает лучше, когда записная книжка длинная.

Возможности обработки и анализа данных

Ознакомьтесь с документацией по науке о данных в Microsoft Fabric, чтобы узнать больше о возможностях науки о данных и ИИ в Fabric. Ниже перечислены некоторые ключевые функции обработки и анализа данных, которые изначально поддерживаются в записной книжке Python.

  • Data Wrangler: Data Wrangler — это средство на основе записных книжек, которое предоставляет иммерсивный интерфейс для анализа данных. Эта функция объединяет отображение данных, таких как сетка, с динамической сводной статистикой, встроенными визуализациями и библиотекой общих операций очистки данных. Она обеспечивает очистку данных, преобразование данных и интеграцию, которая ускоряет подготовку данных с помощью Wrangler.

  • MLflow: эксперимент машинного обучения является основной единицей организации и управления для всех связанных запусков машинного обучения. Запуск соответствует одному выполнению кода модели.

  • Fabric Auto Log: Synapse Data Science в Microsoft Fabric включает автоматическое ведение журнала, что значительно сокращает объем кода, необходимый для автоматического регистрации параметров, метрик и элементов модели машинного обучения во время обучения.

    Автологирование расширяет возможности отслеживания MLflow. Автологирование может записывать различные метрики, включая точность, потерю, оценку F1 и пользовательские метрики, которые вы определяете. Используя автологирование, разработчики и специалисты по обработке и анализу данных могут легко отслеживать и сравнивать производительность различных моделей и экспериментов без ручного отслеживания.

  • Copilot: Copilot для научных и инженерных записных книжек для данных — это помощник на базе искусственного интеллекта, который помогает анализировать и визуализировать данные. Он работает с таблицами lakehouse, наборами данных Power BI и фреймами данных pandas/spark, предоставляя ответы и фрагменты кода непосредственно в записной книжке. Панель чата Copilot и Char-magics можно использовать в записной книжке, а искусственный интеллект предоставляет ответы или код для копирования в записную книжку.

Известные ограничения общедоступной предварительной версии

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

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

  • Установка времени ожидания сеанса пока недоступна.

  • Copilot может создать инструкцию Spark, которая может не выполняться в записной книжке Python.

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