Работа с таблицами в Машинное обучение Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

Машинное обучение Azure поддерживает тип таблицы (mltable). Это позволяет создать схему , которая определяет, как загружать файлы данных в память в виде кадра данных Pandas или Spark. В этой статье раскрываются следующие темы.

  • Когда следует использовать таблицы Машинное обучение Azure вместо файлов или папок
  • mltable Установка пакета SDK
  • Определение схемы загрузки данных с помощью mltable файла
  • Примеры использования mltable в Машинное обучение Azure
  • Как использовать mltable во время интерактивной разработки (например, в записной книжке)

Необходимые компоненты

Внимание

Убедитесь, что в среде Python установлен последний mltable пакет:

pip install -U mltable azureml-dataprep[pandas]

Клонирование репозитория примеров

Фрагменты кода в этой статье основаны на примерах в репозитории GitHub Машинное обучение Azure. Чтобы клонировать репозиторий в среду разработки, используйте следующую команду:

git clone --depth 1 https://github.com/Azure/azureml-examples

Совет

Используется --depth 1 для клонирования только последней фиксации в репозитории. Это сокращает время, необходимое для завершения операции.

Примеры, относящиеся к таблицам Машинное обучение Azure, можно найти в этой папке клонированного репозитория:

cd azureml-examples/sdk/python/using-mltable

Введение

Машинное обучение Azure таблицы (mltable) позволяют определить способ загрузки файлов данных в память в виде кадра данных Pandas и (или) Spark. Таблицы имеют два ключевых компонента:

  1. Файл MLTable. Файл на основе YAML, определяющий схему загрузки данных. В файле MLTable можно указать:
    • Расположение хранилища или расположения данных — локальный, в облаке или на общедоступном сервере http(s).
    • Шаблоны globbing по облачному хранилищу. Эти расположения могут указывать наборы имен файлов с дикими карта символами (*).
    • Преобразование чтения — например, тип формата файла (разделенный текст, Parquet, Delta, json), разделители, заголовки и т. д.
    • Преобразования типов столбцов (для принудительного применения схемы).
    • Создание нового столбца с помощью сведений о структуре папок, например создание столбца года и месяца с помощью {year}/{month} структуры папок в пути.
    • Подмножества данных для загрузки— например, фильтрация строк, сохранение и удаление столбцов, выполнение случайных выборок.
  2. Быстрый и эффективный механизм загрузки данных в кадр данных Pandas или Spark в соответствии с схемой, определенной в файле MLTable. Подсистема использует Rust для высокой скорости и эффективности памяти.

Машинное обучение Azure таблицы полезны в следующих сценариях:

  • Вам нужно выполнить glob-объекты по расположениям хранилища.
  • Необходимо создать таблицу, используя данные из разных расположений хранилища (например, разные контейнеры BLOB-объектов).
  • Путь содержит соответствующие сведения, которые необходимо записать в данных (например, дата и время).
  • Схема данных часто изменяется.
  • Вы хотите легко воспроизвести шаги загрузки данных.
  • Вам потребуется только подмножество больших данных.
  • Данные содержат расположения хранилища, которые необходимо передавать в сеанс Python. Например, необходимо выполнить потоковую передачу path в следующей структуре строк JSON: [{"path": "abfss://fs@account.dfs.core.windows.net/my-images/cats/001.jpg", "label":"cat"}]
  • Вы хотите обучить модели машинного обучения с помощью Машинное обучение Azure AutoML.

Совет

Для табличных данных Машинное обучение Azure не требует использования таблиц Машинное обучение Azure (mltable). Вы можете использовать типы файлов Машинное обучение Azure иuri_file папокuri_folder, а собственная логика синтаксического анализа загружает данные в кадр данных Pandas или Spark.

Для простого CSV-файла или папки Parquet проще использовать Машинное обучение Azure файлы и папки вместо таблиц.

Краткое руководство по таблицам Машинное обучение Azure

В этом кратком руководстве вы создадите таблицу (mltable) данных о зеленом такси Нью-Йорка из открытых наборов данных Azure. Данные имеют формат parquet, и он охватывает годы 2008-2021. В общедоступной учетной записи хранения BLOB-объектов файлы данных имеют эту структуру папок:

/
└── green
    ├── puYear=2008
    │   ├── puMonth=1
    │   │   ├── _committed_2983805876188002631
    │   │   └── part-XXX.snappy.parquet
    │   ├── ...
    │   └── puMonth=12
    │       ├── _committed_2983805876188002631
    │       └── part-XXX.snappy.parquet
    ├── ...
    └── puYear=2021
        ├── puMonth=1
        │   ├── _committed_2983805876188002631
        │   └── part-XXX.snappy.parquet
        ├── ...
        └── puMonth=12
            ├── _committed_2983805876188002631
            └── part-XXX.snappy.parquet

С помощью этих данных необходимо загрузить в кадр данных Pandas:

  • Только файлы parquet в течение года 2015-19
  • Случайный выборка данных
  • Только строки с расстоянием для разрыва больше 0
  • Соответствующие столбцы для Машинное обучение
  • Новые столбцы — год и месяц — использование сведений о пути (puYear=X/puMonth=Y)

Код Pandas обрабатывает это. Однако достижение воспроизводимости станет сложной, так как необходимо:

  • Общий доступ к коду, что означает, что если схема изменяется (например, имя столбца), все пользователи должны обновить свой код.
  • Написание конвейера ETL, который имеет тяжелые затраты

Машинное обучение Azure таблицы предоставляют легкий механизм для сериализации (сохранения) шагов загрузки данных в MLTable файле. Затем вы и члены вашей команды могут воспроизвести кадр данных Pandas. Если схема изменяется, то обновляется только MLTable файл, а не обновляется во многих местах, включающих код загрузки данных Python.

Клонирование записной книжки быстрого запуска или создание новой записной книжки или скрипта

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

Кроме того, записная книжка быстрого запуска доступна в репозитории GitHub Машинное обучение Azure. Используйте этот код для клонирования и доступа к записной книжке:

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/sdk/python/using-mltable/quickstart

mltable Установка пакета SDK для Python

Чтобы загрузить данные зеленого такси Нью-Йорка в таблицу Машинное обучение Azure, необходимо установить mltable пакет SDK Python и pandas установить его в среде Python с помощью этой команды:

pip install -U mltable azureml-dataprep[pandas]

Создание файла MLTable

mltable Используйте пакет SDK Для Python для создания файла MLTable, чтобы документировать схему загрузки данных. Для этого скопируйте и вставьте следующий код в записную книжку или скрипт, а затем выполните следующий код:

import mltable

# glob the parquet file paths for years 2015-19, all months.
paths = [
    {
        "pattern": "wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/green/puYear=2015/puMonth=*/*.parquet"
    },
    {
        "pattern": "wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/green/puYear=2016/puMonth=*/*.parquet"
    },
    {
        "pattern": "wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/green/puYear=2017/puMonth=*/*.parquet"
    },
    {
        "pattern": "wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/green/puYear=2018/puMonth=*/*.parquet"
    },
    {
        "pattern": "wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/green/puYear=2019/puMonth=*/*.parquet"
    },
]

# create a table from the parquet paths
tbl = mltable.from_parquet_files(paths)

# table a random sample
tbl = tbl.take_random_sample(probability=0.001, seed=735)

# filter trips with a distance > 0
tbl = tbl.filter("col('tripDistance') > 0")

# Drop columns
tbl = tbl.drop_columns(["puLocationId", "doLocationId", "storeAndFwdFlag"])

# Create two new columns - year and month - where the values are taken from the path
tbl = tbl.extract_columns_from_partition_format("/puYear={year}/puMonth={month}")

# print the first 5 records of the table as a check
tbl.show(5)

При необходимости можно загрузить объект MLTable в Pandas, используя следующее:

# You can load the table into a pandas dataframe
# NOTE: The data is in East US region and the data is large, so this will take several minutes (~7mins)
# to load if you are in a different region.

# df = tbl.to_pandas_dataframe()

Сохранение шагов загрузки данных

Затем сохраните все шаги загрузки данных в файл MLTable. Сохранение шагов загрузки данных в файле MLTable позволяет воспроизводить кадр данных Pandas в последующий момент времени без необходимости переопределить код каждый раз.

Вы можете сохранить yaml-файл MLTable в ресурс облачного хранилища или сохранить его в локальных ресурсах пути.

# save the data loading steps in an MLTable file to a cloud storage resource
# NOTE: the tbl object was defined in the previous snippet.
tbl.save(path="azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<wsname>/datastores/<name>/paths/titanic", colocated=True, show_progress=True, overwrite=True)
# save the data loading steps in an MLTable file to a local resource
# NOTE: the tbl object was defined in the previous snippet.
tbl.save("./titanic")

Внимание

  • Если кодирован == True, то мы скопировать данные в ту же папку с yaml-файлом MLTable, если они в настоящее время не находятся совместно, и мы будем использовать относительные пути в yaml MLTable.
  • Если совместное размещение == False, мы не будем перемещать данные, мы будем использовать абсолютные пути для облачных данных и использовать относительные пути для локальных данных.
  • Мы не поддерживаем эту комбинацию параметров: данные хранятся в локальном ресурсе, совместно размещенном == False, path предназначен для облачного каталога. Отправьте локальные данные в облако и используйте путь к облачным данным для MLTable.

Воспроизведение шагов загрузки данных

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

import mltable

# load the previously saved MLTable file
tbl = mltable.load("./nyc_taxi/")
tbl.show(5)

# You can load the table into a pandas dataframe
# NOTE: The data is in East US region and the data is large, so this will take several minutes (~7mins)
# to load if you are in a different region.

# load the table into pandas
# df = tbl.to_pandas_dataframe()

# print the head of the data frame
# df.head()
# print the shape and column types of the data frame
# print(f"Shape: {df.shape}")
# print(f"Columns:\n{df.dtypes}")

Создание ресурса данных для предоставления общего доступа и воспроизведения

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

az ml data create --name green-quickstart --version 1 --path ./nyc_taxi --type mltable

Примечание.

Путь указывает на папку, содержащую MLTable файл.

Чтение ресурса данных в интерактивном сеансе

Теперь, когда у вас есть MLTable, хранящиеся в облаке, вы и члены команды могут получить доступ к нему с понятным именем в интерактивном сеансе (например, записная книжка):

import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

# connect to the AzureML workspace
# NOTE: the subscription_id, resource_group, workspace variables are set
# in a previous code snippet.
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

# get the latest version of the data asset
# Note: The version was set in the previous snippet. If you changed the version
# number, update the VERSION variable below.
VERSION="1"
data_asset = ml_client.data.get(name="green-quickstart", version=VERSION)

# create a table
tbl = mltable.load(f"azureml:/{data_asset.id}")
tbl.show(5)

# load into pandas
# NOTE: The data is in East US region and the data is large, so this will take several minutes (~7mins) to load if you are in a different region.
df = tbl.to_pandas_dataframe()

Чтение ресурса данных в задании

Если вы или член команды хотите получить доступ к таблице в задании, сценарий обучения Python будет содержать:

# ./src/train.py
import argparse
import mltable

# parse arguments
parser = argparse.ArgumentParser()
parser.add_argument('--input', help='mltable to read')
args = parser.parse_args()

# load mltable
tbl = mltable.load(args.input)

# load into pandas
df = tbl.to_pandas_dataframe()

Для задания требуется файл conda, включающий зависимости пакета Python:

# ./conda_dependencies.yml
dependencies:
  - python=3.10
  - pip=21.2.4
  - pip:
      - mltable
      - azureml-dataprep[pandas]

Задание будет отправляться с помощью:

Создайте следующий файл ЗАДАНИЯ YAML:

# mltable-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json

code: ./src

command: python train.py --input ${{inputs.green}}
inputs:
    green:
      type: mltable
      path: azureml:green-quickstart:1

compute: cpu-cluster

environment:
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
  conda_file: conda_dependencies.yml

В CLI создайте задание:

az ml job create -f mltable-job.yml

Создание файлов MLTable

Чтобы напрямую создать файл MLTable, мы рекомендуем использовать mltable пакет SDK для Python для создания файлов MLTable, как показано в кратком руководстве по таблицам Машинное обучение Azure вместо текстового редактора. В этом разделе описаны возможности пакета mltable SDK для Python.

Поддерживаемые типы файлов

Вы можете создать MLTable с различными типами файлов:

Тип файла MLTable Python SDK
Текст с разделителями
(например, CSV-файлы)
from_delimited_files(paths=[path])
Parquet from_parquet_files(paths=[path])
Delta Lake from_delta_lake(delta_table_uri=<uri_pointing_to_delta_table_directory>,timestamp_as_of='2022-08-26T00:00:00Z')
Строки JSON from_json_lines_files(paths=[path])
Пути
(Создайте таблицу со столбцом путей для потоковой передачи)
from_paths(paths=[path])

Дополнительные сведения см. в справочном ресурсе MLTable

Определение путей

Для разделенного текста, parquet, строк JSON и путей определите список словарей Python, определяющих путь или пути, из которых следует читать:

import mltable

# A List of paths to read into the table. The paths are a python dict that define if the path is
# a file, folder, or (glob) pattern.
paths = [
    {
        "file": "<supported_path>"
    }
]

tbl = mltable.from_delimited_files(paths=paths)

# alternatively
# tbl = mltable.from_parquet_files(paths=paths)
# tbl = mltable.from_json_lines_files(paths=paths)
# tbl = mltable.from_paths(paths=paths)

MLTable поддерживает следующие типы путей:

Расположение Примеры
Путь к локальному компьютеру ./home/username/data/my_data
Путь к общедоступному HTTP(S)-серверу https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
Путь к службе хранилища Azure wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>
abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>
Хранилище данных с длинной формой Машинное обучение Azure azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<wsname>/datastores/<name>/paths/<path>

Примечание.

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

Примечание по определению путей для таблиц Delta Lake

По сравнению с другими типами файлов, определение путей для чтения таблиц Delta Lake отличается. Для таблиц Delta Lake путь указывает на одну папку (обычно в ADLS 2-го поколения), содержащую папку "_delta_log" и файлы данных. Поддерживается перемещение по времени. В следующем коде показано, как определить путь для таблицы Delta Lake:

import mltable

# define the cloud path containing the delta table (where the _delta_log file is stored)
delta_table = "abfss://<file_system>@<account_name>.dfs.core.windows.net/<path_to_delta_table>"

# create an MLTable. Note the timestamp_as_of parameter for time travel.
tbl = mltable.from_delta_lake(
    delta_table_uri=delta_table,
    timestamp_as_of='2022-08-26T00:00:00Z'
)

Чтобы получить последнюю версию данных Delta Lake, можно передать текущую метку timestamp_as_ofвремени.

import mltable

# define the relative path containing the delta table (where the _delta_log file is stored)
delta_table_path = "./working-directory/delta-sample-data"

# get the current timestamp in the required format
current_timestamp = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
print(current_timestamp)
tbl = mltable.from_delta_lake(delta_table_path, timestamp_as_of=current_timestamp)
df = tbl.to_pandas_dataframe()

Внимание

Ограничение: mltable не поддерживает извлечение ключа секции при чтении данных из Delta Lake. Преобразование mltableextract_columns_from_partition_format не будет работать при чтении данных Delta Lake с помощью mltable.

Внимание

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

Файлы, папки и глобы

Машинное обучение Azure таблицы поддерживают чтение из следующих данных:

  • Например, файлы: abfss://<file_system>@<account_name>.dfs.core.windows.net/my-csv.csv
  • например, папки abfss://<file_system>@<account_name>.dfs.core.windows.net/my-folder/
  • Примеры шаблонов глобовabfss://<file_system>@<account_name>.dfs.core.windows.net/my-folder/*.csv
  • сочетание шаблонов файлов, папок и глоббинга

Поддерживаемые преобразования загрузки данных

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

Примеры

Примеры в репозитории GitHub Машинное обучение Azure стали основой фрагментов кода в этой статье. Используйте эту команду, чтобы клонировать репозиторий в среду разработки:

git clone --depth 1 https://github.com/Azure/azureml-examples

Совет

Используется --depth 1 для клонирования только последней фиксации в репозитории. Это сокращает время, необходимое для завершения операции.

В этой папке репозитория клона содержатся примеры, относящиеся к таблицам Машинное обучение Azure:

cd azureml-examples/sdk/python/using-mltable

файлы с разделителями;

Сначала создайте MLTable из CSV-файла с помощью этого кода:

import mltable
from mltable import MLTableHeaders, MLTableFileEncoding, DataType

# create paths to the data files
paths = [{"file": "wasbs://data@azuremlexampledata.blob.core.windows.net/titanic.csv"}]

# create an MLTable from the data files
tbl = mltable.from_delimited_files(
    paths=paths,
    delimiter=",",
    header=MLTableHeaders.all_files_same_headers,
    infer_column_types=True,
    include_path_column=False,
    encoding=MLTableFileEncoding.utf8,
)

# filter out rows undefined ages
tbl = tbl.filter("col('Age') > 0")

# drop PassengerId
tbl = tbl.drop_columns(["PassengerId"])

# ensure survived column is treated as boolean
data_types = {
    "Survived": DataType.to_bool(
        true_values=["True", "true", "1"], false_values=["False", "false", "0"]
    )
}
tbl = tbl.convert_column_types(data_types)

# show the first 5 records
tbl.show(5)

# You can also load into pandas...
# df = tbl.to_pandas_dataframe()
# df.head(5)

Сохранение шагов загрузки данных

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

# save the data loading steps in an MLTable file
# NOTE: the tbl object was defined in the previous snippet.
tbl.save("./titanic")

Воспроизведение шагов загрузки данных

Теперь, когда файл содержит сериализованные шаги загрузки данных, их можно воспроизвести в любой момент времени с load() помощью метода. Таким образом, вам не нужно переопределить шаги загрузки данных в коде, и вы можете упростить общий доступ к файлу.

import mltable

# load the previously saved MLTable file
tbl = mltable.load("./titanic/")

Создание ресурса данных для предоставления общего доступа и воспроизведения

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

import time
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
from azure.identity import DefaultAzureCredential

# Update with your details...
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AML_WORKSPACE_NAME>"

# set the version number of the data asset to the current UTC time
VERSION = time.strftime("%Y.%m.%d.%H%M%S", time.gmtime())

# connect to the AzureML workspace
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

my_data = Data(
    path="./titanic",
    type=AssetTypes.MLTABLE,
    description="The titanic dataset.",
    name="titanic-cloud-example",
    version=VERSION,
)

ml_client.data.create_or_update(my_data)

Теперь, когда у вас есть MLTable, хранящиеся в облаке, вы и члены команды могут получить доступ к нему с понятным именем в интерактивном сеансе (например, записная книжка):

import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

# connect to the AzureML workspace
# NOTE:  subscription_id, resource_group, workspace were set in a previous snippet.
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

# get the latest version of the data asset
# Note: The version was set in the previous code cell.
data_asset = ml_client.data.get(name="titanic-cloud-example", version=VERSION)

# create a table
tbl = mltable.load(f"azureml:/{data_asset.id}")

# load into pandas
df = tbl.to_pandas_dataframe()
df.head(5)

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

Файлы Parquet

В кратком руководстве по таблицам Машинное обучение Azure объясняется, как считывать файлы parquet.

Пути. Создание таблицы файлов изображений

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

/pet-images
  /cat
    0.jpeg
    1.jpeg
    ...
  /dog
    0.jpeg
    1.jpeg

Можно mltable создать таблицу, содержащую пути хранения этих образов и их имена папок (метки), которые можно использовать для потоковой передачи изображений. Этот код создает MLTable:

import mltable

# create paths to the data files
paths = [{"pattern": "wasbs://data@azuremlexampledata.blob.core.windows.net/pet-images/**/*.jpg"}]

# create the mltable
tbl = mltable.from_paths(paths)

# extract useful information from the path
tbl = tbl.extract_columns_from_partition_format("{account}/{container}/{folder}/{label}")

tbl = tbl.drop_columns(["account", "container", "folder"])

df = tbl.to_pandas_dataframe()
print(df.head())

# save the data loading steps in an MLTable file
tbl.save("./pets")

В этом коде показано, как открыть расположение хранилища в кадре данных Pandas и создать изображения:

# plot images on a grid. Note this takes ~1min to execute.
import matplotlib.pyplot as plt
from PIL import Image

fig = plt.figure(figsize=(20, 20))
columns = 4
rows = 5
for i in range(1, columns*rows +1):
    with df.Path[i].open() as f:
        img = Image.open(f)
        fig.add_subplot(rows, columns, i)
        plt.imshow(img)
        plt.title(df.label[i])

Создание ресурса данных для предоставления общего доступа и воспроизведения

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

import time
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
from azure.identity import DefaultAzureCredential

# set the version number of the data asset to the current UTC time
VERSION = time.strftime("%Y.%m.%d.%H%M%S", time.gmtime())

# connect to the AzureML workspace
# NOTE: subscription_id, resource_group, workspace were set in a previous snippet.
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

my_data = Data(
    path="./pets",
    type=AssetTypes.MLTABLE,
    description="A sample of cat and dog images",
    name="pets-mltable-example",
    version=VERSION,
)

ml_client.data.create_or_update(my_data)

Теперь, когда он mltable хранится в облаке, вы и члены команды могут получить доступ к нему с понятным именем в интерактивном сеансе (например, записная книжка):

import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

# connect to the AzureML workspace
# NOTE: subscription_id, resource_group, workspace were set in a previous snippet.
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

# get the latest version of the data asset
# Note: the variable VERSION is set in the previous code
data_asset = ml_client.data.get(name="pets-mltable-example", version=VERSION)

# the table from the data asset id
tbl = mltable.load(f"azureml:/{data_asset.id}")

# load into pandas
df = tbl.to_pandas_dataframe()
df.head()

Вы также можете загрузить данные в задание.

Следующие шаги