Зарегистрируйте фрейм данных Pandas в машинном обучении Azure: NOT_SUPPORTED_API_USE_ATTEMPT

Я использовал следующий код для регистрации фреймов данных Pandas в Azure ML:

workspace = Workspace(<subscription_id>, <resource_group>, <workspace_name>)
from azureml.core import Dataset
datastore = workspace.get_default_datastore()
ds = Dataset.Tabular.register_pandas_dataframe(df, datastore, "output_dataset_name", "description")

Однако, начиная с сегодняшнего дня, я получаю сообщение об ошибке устаревания:

    Message: [NOT_SUPPORTED_API_USE_ATTEMPT] The [read_pandas_dataframe] API has been deprecated and is no longer supported
    Payload: {"rslex_version": "2.22.2", "api_name": "read_pandas_dataframe", "version": "5.1.6"}
ActivityCompleted: Activity=register_pandas_dataframe, HowEnded=Failure, Duration=14.09 [ms], Info = {'activity_name': 'register_pandas_dataframe', 'activity_type': 'PublicApi', 'app_name': 'TabularDataset', 'source': 'azureml.dataset', 'version': '1.51.0.post1', 'dataprepVersion': '5.1.6', 'completionStatus': 'Failure', 'durationMs': 1.7}, Exception=NotImplementedError; read_pandas_dataframe is no longer supported. Write dataframe out as Parquet or csv and use read_parquet or read_csv instead..

Может ли кто-нибудь порекомендовать лучший способ зарегистрировать фреймы данных Pandas как наборы данных AML после прекращения поддержки? Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
127
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ошибка связана с использованием последних пакетов azureml-dataset-runtime и azureml-dataprep.

Вы можете либо установить версии пакетов azureml-dataset-runtime и azureml-dataprep, совместимые с большинством операций, либо, как предложено в ошибке, записать в CSV или Parquet и создать набор данных, используя последнюю версию SDK v2.

  1. Для первого решения установите azureml-dataset-runtime с помощью команды ниже и зарегистрируйте набор данных.

    pip install azureml-dataset-runtime==1.51.0

  2. Запишите в файл CSV, используя приведенный ниже код.

    df.to_csv("./tmp/csv/tmp.csv")

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

ЯМЛ

type: mltable

paths:
  - pattern: ./*.csv
transformations:
  - read_delimited:
      delimiter: ,
      encoding: ascii
      header: all_files_same_headers

Используйте код ниже:

from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes

my_path = './tmp/csv/'

my_data = Data(
    path=my_path,
    type=AssetTypes.MLTABLE,
    description = "<description>",
    name = "<name>",
    version='<version>'
)

ml_client.data.create_or_update(my_data)

Первое решение (установка конкретной версии azureml-dataset-runtime) решило проблему. Спасибо!

Irina 26.04.2024 14:17

Рад, что хотя бы одно решение сработало.

JayashankarGS 26.04.2024 14:41

Другие вопросы по теме