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


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

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

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

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

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

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

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

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

  • Расширенная интуитивная подсказка: блокнот 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.

Note

  • Среда выполнения для записной книжки Python уже оснащена библиотеками delta-rs и duckdb для возможности чтения и записи данных Delta Lake. Однако обратите внимание, что некоторые функции Delta Lake в настоящее время не поддерживаются полностью. Дополнительные сведения и последние обновления см. на официальных веб-сайтах delta-rs и duckdb .
  • В настоящее время мы не поддерживаем deltalake(delta-rs) версии 1.0.0 или более поздней. Оставайтесь на курсе.

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

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

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

Note

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

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

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

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

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

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

Note

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

Папка ресурсов ноутбука

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

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

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

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

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

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

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

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

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

Для настраиваемых библиотек можно отправить файлы lib в папку встроенных ресурсов . Мы поддерживаем несколько типов библиотек, включая такие форматы, как Wheel (WHL), JAR (.jar), DLL (.dll) и Python (.py). Просто попробуйте перетащить файл, и фрагмент кода создается автоматически.

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

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

Command/Syntax Основная цель Как он работает в Jupyter Notebook Типичный вариант использования Notes
%pip install package Установка пакетов Python Выполняет pip в Python-ядре записной книжки Рекомендуемый способ установки пакетов В блокноте Python, так же как !pip, не выполняется автоматический перезапуск ядра.
!pip install package Установка пакетов Python с помощью оболочки Запуск pip в качестве команды оболочки Альтернативный способ установки пакетов В блокноте Python, так же как %pip, не выполняется автоматический перезапуск ядра.
import sys; sys.exit(0) Перезапуск ядра записной книжки Немедленно перезапускает ядро Программно перезапустить ядро Очищает все переменные и состояния; не рекомендуется использовать напрямую
notebookutils.session.restartPython() Перезапуск ядра записной книжки Внутренние вызовы sys.exit(0) Рекомендуемый способ перезапуска ядра Официальный API, более безопасный и более совместимый, чем использование sys.exit(0) напрямую

Note

  • В Python Notebook команды %pip и !pip ведут себя одинаково: оба выполняют установку пакетов в среду текущего ядра и не вызывают автоматического перезапуска ядра после установки.
  • Если необходимо перезапустить ядро (например, после установки определенных пакетов), рекомендуется использовать notebookutils.session.restartPython() вместо import sys; sys.exit(0)него.
    • notebookutils.session.restartPython() — это официальный API, который упаковывает sys.exit(0) , и он более безопасный и более совместимый в средах записных книжек.
  • Не рекомендуется использовать sys.exit(0) напрямую, если это не необходимо.

Мониторинг использования ресурсов записной книжки Python в режиме реального времени

Это важно

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

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

Монитор ресурсов улучшает видимость того, как задания Python используют системные ресурсы. Это помогает оптимизировать производительность, управлять затратами и снизить риск ошибок, связанных с нехваткой памяти (OOM). Отслеживая метрики в режиме реального времени, можно определить ресурсоемкие операции, проанализировать шаблоны использования и принять обоснованные решения о масштабировании или изменении кода.

Чтобы начать использовать его, задайте язык записной книжки на Python и запустите сеанс. Затем можно открыть монитор, щелкнув вычислительные ресурсы в строке состояния записной книжки или выбрав "Просмотреть использование ресурсов " на панели инструментов. Панель мониторинга ресурсов появится автоматически, обеспечивая интегрированный интерфейс мониторинга для кода Python в записных книжках Fabric.

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

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

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

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

%%configure -f
{
    "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, а также получения справки по методам или ссылки на doc NotebookUtils.

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

Note

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

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

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

notebookutils.data.help()

Output:

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 = '', **kwargs)
        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.
        :param **kwargs Optional: Additional optional configuration. Supported keys include:
            - tds_endpoint : Allow user to specify a custom TDS endpoint to use for connection.
        :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:
                df = conn.query(sql_query)
                display(df)
    
    help(method_name: str = '') -> 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.10/lib/python3.10/site-packages/notebookutils/data.py

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

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

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

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

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

conn = notebookutils.data.connect_to_artifact("sqldb_name_or_id", "optional_workspace_id", "optional_sqldatabase_type") 
df = conn.query("SELECT * FROM sys.schemas;")

Note

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

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

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

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

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

Visualization

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

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

Note

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

Код intelliSense

Записная книжка Python также использует Pylance в качестве языкового сервера. Дополнительные сведения см. в статье об улучшении разработки Python с помощью 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-ноутбуке не полностью поддерживается в нескольких регионах. Процесс развёртывания всё ещё продолжается, оставайтесь с нами, пока мы расширяем поддержку в других регионах.