TabularDatasetFactory Класс
Содержит методы для создания табличного набора данных для Машинного обучения Azure.
Объект TabularDataset создается с помощью методов from_*
в этом классе, например метода from_delimited_files.
Дополнительные сведения о работе с табличными наборами данных см. в записной книжке https://aka.ms/tabulardataset-samplenotebook.
- Наследование
-
builtins.objectTabularDatasetFactory
Конструктор
TabularDatasetFactory()
Методы
from_delimited_files |
Создайте объект TabularDataset для представления табличных данных в файлах с разделителями (например, CSV и TSV). |
from_json_lines_files |
Создайте объект TabularDataset для представления табличных данных в файлах JSON Lines (http://jsonlines.org/). |
from_parquet_files |
Создайте объект TabularDataset для представления табличных данных в файлах Parquet. |
from_sql_query |
Создайте объект TabularDataset для представления табличных данных в базах данных SQL. |
register_dask_dataframe |
Примечание Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental. Создание набора данных из кадра данных dask. |
register_pandas_dataframe |
Создание набора данных на основе кадра данных pandas. |
register_spark_dataframe |
Примечание Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental. Создание набора данных на основе кадра данных Spark. |
from_delimited_files
Создайте объект TabularDataset для представления табличных данных в файлах с разделителями (например, CSV и TSV).
static from_delimited_files(path, validate=True, include_path=False, infer_column_types=True, set_column_types=None, separator=',', header=True, partition_format=None, support_multi_line=False, empty_as_string=False, encoding='utf8')
Параметры
Имя | Описание |
---|---|
path
Обязательно
|
|
validate
Обязательно
|
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления. Кроме того, чтобы отключить проверку, для "infer_column_types" нужно задать значение False. |
include_path
Обязательно
|
Логическое значение для сохранения сведений о пути в виде столбца в наборе данных. Значение по умолчанию — False. Это удобно, если при считывании нескольких файлов необходимо иметь возможность определить, из какого файла поступила определенная запись, или сохранить полезную информацию в пути к файлу. |
infer_column_types
Обязательно
|
Логическое значение для определения типов данных столбца. Значение по умолчанию — True. Для определение типа необходимо, чтобы источник данных был доступен из текущего вычисления. Сейчас определение типа извлекает только первые 200 строк. Если данные содержат несколько типов значений, лучше предоставить требуемый тип в качестве переопределения с использованием аргумента set_column_types. Примеры кода для set_column_types см. в разделе примечаний. |
set_column_types
Обязательно
|
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType. |
separator
Обязательно
|
Разделитель, используемый для разделения столбцов. |
header
Обязательно
|
Управляет повышением уровня заголовков столбцов при чтении из файлов. По умолчанию имеет значение True для всех файлов с одинаковым заголовком. Если header=False, считается, что файл не имеет заголовка. Дополнительные параметры можно указать с помощью значения перечисления PromoteHeadersBehavior. |
partition_format
Обязательно
|
Укажите формат раздела пути. Значение по умолчанию — None (Нет). Сведения о разделах для каждого пути данных будут извлечены в столбцы на основе указанного формата. Часть формата "{column_name}" создает строковый столбец, а "{column_name: гггг/ММ/дд/ЧЧ/мм/сс}" создает столбец datetime, где "гггг", "ММ", "дд", "ЧЧ", "мм" и "сс" используются для извлечения года, месяца, дня, часа, минуты и секунды для типа datetime. Формат должен начинаться с расположения первого ключа секции до конца пути к файлу. Например, для пути "../Accounts/2019/01/01/data.csv", где секционирование осуществляется по имени отдела и времени, partition_format ="/{Department}/{PartitionDate: гггг/мм/дд}/data.csv" создает строковый столбец "Department" (Отдел) со значением "Accounts" (Бухгалтерия) и столбцом datetime "PartitionDate" со значением "2019-01-01". |
support_multi_line
Обязательно
|
По умолчанию (support_multi_line=False) все разрывы строк, в том числе в значениях полей в кавычках, будут интерпретироваться как разрыв записи. Считывание данных таким способом выполняется быстрее и более оптимизировано для параллельного выполнения на нескольких ядрах ЦП. Однако это может привести к автоматическому созданию дополнительных записей с несогласованными значениями полей. Этот параметр должен принимать значение True, если известно, что файлы с разделителями содержат заключенные в кавычки разрывы строк. Для этого CSV-файла, приведенного в качестве примера, данные будут считываться по-разному в зависимости от support_multi_line. A,B,C A1,B1,C1 A2,"B 2",C2
|
empty_as_string
Обязательно
|
Указывает, должны ли значения пустых полей загружаться как пустые строки. Для значения по умолчанию (False) пустые значения полей будут считываться как NULL. Если передать для этого поля True, значения пустых полей будут считываться в виде пустых строк. Если значения преобразуются в число или дату и время, этот параметр не учитывается, так как пустые значения преобразуются в NULL. |
encoding
Обязательно
|
Указывает кодировку файла. Поддерживаются следующие кодировки: "utf8", "iso88591", "latin1", "ascii", "utf16", "utf32", "utf8bom" и "windows1252". |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает объект TabularDataset. |
Комментарии
from_delimited_files создает объект класса TabularDataset, который определяет операции для загрузки данных из файлов с разделителями в табличное представление.
Чтобы данные были доступны Машинному обучению Azure, файлы с разделителями, заданные путем , должны находиться в Datastore общедоступных URL-адресах или URL-адресах blob-объектов, ADLS 1-го поколения и ADLS 2-го поколения. Маркер AAD пользователя будет использоваться в записной книжке или локальной программе Python, если он напрямую вызывает одну из следующих функций: FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files удостоверение целевого объекта вычислений будет использоваться в заданиях, отправленных Experiment.submit для проверки подлинности доступа к данным. Подробнее: https://aka.ms/data-access
Типы данных для столбцов по умолчанию определяются на основе данных в файлах с разделителями. Если задан параметр set_column_types, тип данных для указанных столбцов в возвращаемом наборе TabularDataset переопределяется соответствующим образом.
from azureml.core import Dataset, Datastore
# create tabular dataset from a single file in datastore
datastore = Datastore.get(workspace, 'workspaceblobstore')
tabular_dataset_1 = Dataset.Tabular.from_delimited_files(path=(datastore,'weather/2018/11.csv'))
# create tabular dataset from a single directory in datastore
datastore = Datastore.get(workspace, 'workspaceblobstore')
tabular_dataset_2 = Dataset.Tabular.from_delimited_files(path=(datastore,'weather/'))
# create tabular dataset from all csv files in the directory
tabular_dataset_3 = Dataset.Tabular.from_delimited_files(path=(datastore,'weather/**/*.csv'))
# create tabular dataset from multiple paths
data_paths = [(datastore, 'weather/2018/11.csv'), (datastore, 'weather/2018/12.csv')]
tabular_dataset_4 = Dataset.Tabular.from_delimited_files(path=data_paths)
# create tabular dataset from url
tabular_dataset_5 = Dataset.Tabular.from_delimited_files(path='https://url/weather/2018/12.csv')
# use `set_column_types` to set column data types
from azureml.data import DataType
data_types = {
'ID': DataType.to_string(),
'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
'Count': DataType.to_long(),
'Latitude': DataType.to_float(),
'Found': DataType.to_bool()
}
web_path = [
'https://url/weather/2018/11.csv',
'https://url/weather/2018/12.csv'
]
tabular = Dataset.Tabular.from_delimited_files(path=web_path, set_column_types=data_types)
from_json_lines_files
Создайте объект TabularDataset для представления табличных данных в файлах JSON Lines (http://jsonlines.org/).
static from_json_lines_files(path, validate=True, include_path=False, set_column_types=None, partition_format=None, invalid_lines='error', encoding='utf8')
Параметры
Имя | Описание |
---|---|
path
Обязательно
|
|
validate
Обязательно
|
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления. |
include_path
Обязательно
|
Логическое значение для сохранения сведений о пути в виде столбца в наборе данных. Значение по умолчанию — False. Это удобно, если при считывании нескольких файлов необходимо иметь возможность определить, из какого файла поступила определенная запись, или сохранить полезную информацию в пути к файлу. |
set_column_types
Обязательно
|
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType. |
partition_format
Обязательно
|
Укажите формат раздела пути. Значение по умолчанию — None (Нет). Сведения о разделах для каждого пути данных будут извлечены в столбцы на основе указанного формата. Часть формата "{column_name}" создает строковый столбец, а "{column_name: гггг/ММ/дд/ЧЧ/мм/сс}" создает столбец datetime, где "гггг", "ММ", "дд", "ЧЧ", "мм" и "сс" используются для извлечения года, месяца, дня, часа, минуты и секунды для типа datetime. Формат должен начинаться с расположения первого ключа секции до конца пути к файлу. Например, для пути "../Accounts/2019/01/01/data.jsonl", где секционирование осуществляется по имени отдела и времени, partition_format ="/{Department}/{PartitionDate: гггг/мм/дд}/data.jsonl" создает строковый столбец "Department" (Отдел) со значением "Accounts" (Бухгалтерия) и столбцом datetime "PartitionDate" со значением "2019-01-01". |
invalid_lines
Обязательно
|
Порядок обработки строк, которые являются недопустимыми объектами JSON. Поддерживаются значения "error" и "drop". |
encoding
Обязательно
|
Указывает кодировку файла. Поддерживаются следующие кодировки: "utf8", "iso88591", "latin1", "ascii", "utf16", "utf32", "utf8bom" и "windows1252". |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает объект TabularDataset. |
Комментарии
from_json_lines_files создает объект класса TabularDataset, который определяет операции для загрузки данных из файлов JSON Lines в табличное представление.
Чтобы данные были доступны Машинному обучению Azure, файлы JSON Lines, указанные путем , должны находиться в Datastore общедоступных URL-адресах или URL-адресах BLOB-объектов, ADLS 1-го поколения и ADLS 2-го поколения. Маркер AAD пользователя будет использоваться в записной книжке или локальной программе Python, если он напрямую вызывает одну из следующих функций: FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files удостоверение целевого объекта вычислений будет использоваться в заданиях, отправленных Experiment.submit для проверки подлинности доступа к данным. Подробнее: https://aka.ms/data-access
Типы данных столбцов определяются на основе типов данных, сохраненных в файлах JSON Lines. Если задан параметр set_column_types, тип данных для указанных столбцов в возвращаемом наборе TabularDataset переопределяется соответствующим образом.
from azureml.core import Dataset, Datastore
# create tabular dataset from a single file in datastore
datastore = Datastore.get(workspace, 'workspaceblobstore')
tabular_dataset_1 = Dataset.Tabular.from_json_lines_files(path=(datastore,'weather/2018/11.jsonl'))
# create tabular dataset from a single directory in datastore
datastore = Datastore.get(workspace, 'workspaceblobstore')
tabular_dataset_2 = Dataset.Tabular.from_json_lines_files(path=(datastore,'weather/'))
# create tabular dataset from all jsonl files in the directory
tabular_dataset_3 = Dataset.Tabular.from_json_lines_files(path=(datastore,'weather/**/*.jsonl'))
# create tabular dataset from multiple paths
data_paths = [(datastore, 'weather/2018/11.jsonl'), (datastore, 'weather/2018/12.jsonl')]
tabular_dataset_4 = Dataset.Tabular.from_json_lines_files(path=data_paths)
# create tabular dataset from url
tabular_dataset_5 = Dataset.Tabular.from_json_lines_files(path='https://url/weather/2018/12.jsonl')
# use `set_column_types` to set column data types
from azureml.data import DataType
data_types = {
'ID': DataType.to_string(),
'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
'Count': DataType.to_long(),
'Latitude': DataType.to_float(),
'Found': DataType.to_bool()
}
web_path = [
'https://url/weather/2018/11.jsonl',
'https://url/weather/2018/12.jsonl'
]
tabular = Dataset.Tabular.from_json_lines_files(path=web_path, set_column_types=data_types)
from_parquet_files
Создайте объект TabularDataset для представления табличных данных в файлах Parquet.
static from_parquet_files(path, validate=True, include_path=False, set_column_types=None, partition_format=None)
Параметры
Имя | Описание |
---|---|
path
Обязательно
|
|
validate
Обязательно
|
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления. |
include_path
Обязательно
|
Логическое значение для сохранения сведений о пути в виде столбца в наборе данных. Значение по умолчанию — False. Это удобно, если при считывании нескольких файлов необходимо иметь возможность определить, из какого файла поступила определенная запись, или сохранить полезную информацию в пути к файлу. |
set_column_types
Обязательно
|
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType. |
partition_format
Обязательно
|
Укажите формат раздела пути. Значение по умолчанию — None (Нет). Сведения о разделах для каждого пути данных будут извлечены в столбцы на основе указанного формата. Часть формата "{column_name}" создает строковый столбец, а "{column_name: гггг/ММ/дд/ЧЧ/мм/сс}" создает столбец datetime, где "гггг", "ММ", "дд", "ЧЧ", "мм" и "сс" используются для извлечения года, месяца, дня, часа, минуты и секунды для типа datetime. Формат должен начинаться с расположения первого ключа секции до конца пути к файлу. Например, с учетом пути "../Accounts/2019/01/01/data.parquet", где раздел осуществляется по имени отдела и времени, partition_format ="/{Department}/{PartitionDate: гггг/мм/дд}/data.parquet" создает строковый столбец "Department" ("Отдел") со значением "Accounts" ("Бухгалтерия") и столбцом datetime "PartitionDate" со значением "2019-01-01". |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает объект TabularDataset. |
Комментарии
from_parquet_files создает объект класса TabularDataset, который определяет операции для загрузки данных из файлов Parquet в табличное представление.
Чтобы данные были доступны Машинному обучению Azure, файлы Parquet, указанные путем , должны находиться в Datastore общедоступных URL-адресах веб-объектов, ADLS 1-го поколения и ADLS 2-го поколения или за их пределами. Маркер AAD пользователя будет использоваться в записной книжке или локальной программе Python, если он напрямую вызывает одну из следующих функций: FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files удостоверение целевого объекта вычислений будет использоваться в заданиях, отправленных Experiment.submit для проверки подлинности доступа к данным. Подробнее: https://aka.ms/data-access
Типы данных столбцов определяются на основе типов данных, сохраненных в файлах Parquet. Если задан параметр set_column_types, тип данных для указанных столбцов в возвращаемом наборе TabularDataset переопределяется соответствующим образом.
# create tabular dataset from a single file in datastore
datastore = Datastore.get(workspace, 'workspaceblobstore')
tabular_dataset_1 = Dataset.Tabular.from_parquet_files(path=(datastore,'weather/2018/11.parquet'))
# create tabular dataset from a single directory in datastore
datastore = Datastore.get(workspace, 'workspaceblobstore')
tabular_dataset_2 = Dataset.Tabular.from_parquet_files(path=(datastore,'weather/'))
# create tabular dataset from all parquet files in the directory
tabular_dataset_3 = Dataset.Tabular.from_parquet_files(path=(datastore,'weather/**/*.parquet'))
# create tabular dataset from multiple paths
data_paths = [(datastore, 'weather/2018/11.parquet'), (datastore, 'weather/2018/12.parquet')]
tabular_dataset_4 = Dataset.Tabular.from_parquet_files(path=data_paths)
# create tabular dataset from url
tabular_dataset_5 = Dataset.Tabular.from_parquet_files(path='https://url/weather/2018/12.parquet')
# use `set_column_types` to set column data types
from azureml.data import DataType
data_types = {
'ID': DataType.to_string(),
'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
'Count': DataType.to_long(),
'Latitude': DataType.to_float(),
'Found': DataType.to_bool()
}
web_path = [
'https://url/weather/2018/11.parquet',
'https://url/weather/2018/12.parquet'
]
tabular = Dataset.Tabular.from_parquet_files(path=web_path, set_column_types=data_types)
from_sql_query
Создайте объект TabularDataset для представления табличных данных в базах данных SQL.
static from_sql_query(query, validate=True, set_column_types=None, query_timeout=30)
Параметры
Имя | Описание |
---|---|
query
Обязательно
|
Хранилище данных и запрос типа SQL. |
validate
Обязательно
|
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления. |
set_column_types
Обязательно
|
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType. |
query_timeout
Обязательно
|
Задает время ожидания (в секундах) перед прекращением попытки выполнить команду и выводом ошибки. По умолчанию это 30 секунд. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает объект TabularDataset. |
Комментарии
from_sql_query создает объект класса TabularDataset, который определяет операции для загрузки данных из баз данных SQL в табличное представление. Сейчас поддерживается только MSSQLDataSource.
Чтобы данные были доступны для Машинного обучения Azure, база данных SQL, указанная с помощью параметра query
, должна находиться в Datastore, а тип хранилища данных должен относиться к SQL.
Типы данных столбцов определяются на основе типов данных в результатах запроса SQL. Если задан параметр set_column_types
, тип данных для указанных столбцов в возвращаемом наборе TabularDataset переопределяется соответствующим образом.
from azureml.core import Dataset, Datastore
from azureml.data.datapath import DataPath
# create tabular dataset from a SQL database in datastore
datastore = Datastore.get(workspace, 'mssql')
query = DataPath(datastore, 'SELECT * FROM my_table')
tabular = Dataset.Tabular.from_sql_query(query, query_timeout=10)
df = tabular.to_pandas_dataframe()
# use `set_column_types` to set column data types
from azureml.data import DataType
data_types = {
'ID': DataType.to_string(),
'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
'Count': DataType.to_long(),
'Latitude': DataType.to_float(),
'Found': DataType.to_bool()
}
tabular = Dataset.Tabular.from_sql_query(query, set_column_types=data_types)
register_dask_dataframe
Примечание
Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental.
Создание набора данных из кадра данных dask.
static register_dask_dataframe(dataframe, target, name, description=None, tags=None, show_progress=True)
Параметры
Имя | Описание |
---|---|
dataframe
Обязательно
|
<xref:dask.dataframe.core.DataFrame>
Обязательный параметр. Кадр данных dask для отправки. |
target
Обязательно
|
Обязательный параметр. Указывает путь к хранилищу данных, куда будут переданы данные кадров данных Parquet. Во избежание конфликта по целевому пути будет создана папка GUID. |
name
Обязательно
|
Обязательное имя зарегистрированного набора данных. |
description
Обязательно
|
Необязательный элемент. Текстовое описание набора данных. Значение по умолчанию — None (Нет). |
tags
Обязательно
|
Необязательный элемент. Словарь тегов значений ключа для предоставления набора данных. Значение по умолчанию — None (Нет). |
show_progress
Обязательно
|
Необязательный параметр. Указывает, демонстрировать ли в консоли ход отправки. Значение по умолчанию — True. |
Возвращаемое значение
Тип | Описание |
---|---|
Зарегистрированный набор данных. |
register_pandas_dataframe
Создание набора данных на основе кадра данных pandas.
static register_pandas_dataframe(dataframe, target, name, description=None, tags=None, show_progress=True, row_group_size=None, make_target_path_unique=True)
Параметры
Имя | Описание |
---|---|
dataframe
Обязательно
|
Обязательный параметр. Указывает кадр данных в памяти, который требуется передать. |
target
Обязательно
|
Обязательный параметр. Указывает путь к хранилищу данных, куда будут переданы данные кадров данных Parquet. Во избежание конфликта по целевому пути будет создана папка GUID. |
name
Обязательно
|
Обязательное имя зарегистрированного набора данных. |
description
Обязательно
|
Необязательный элемент. Текстовое описание набора данных. Значение по умолчанию — None (Нет). |
tags
Обязательно
|
Необязательный элемент. Словарь тегов значений ключа для предоставления набора данных. Значение по умолчанию — None (Нет). |
show_progress
Обязательно
|
Необязательный параметр. Указывает, демонстрировать ли в консоли ход отправки. Значение по умолчанию — True. |
row_group_size
Обязательно
|
Необязательный элемент. Максимальный размер группы строк, используемый при записи файла Parquet. Значение по умолчанию — None (Нет). |
make_target_path_unique
Обязательно
|
Необязательный параметр указывает, следует ли создать уникальную вложенную папку в целевом объекте. Значение по умолчанию — True. |
Возвращаемое значение
Тип | Описание |
---|---|
Зарегистрированный набор данных. |
register_spark_dataframe
Примечание
Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental.
Создание набора данных на основе кадра данных Spark.
static register_spark_dataframe(dataframe, target, name, description=None, tags=None, show_progress=True)
Параметры
Имя | Описание |
---|---|
dataframe
Обязательно
|
Обязательный параметр. Указывает кадр данных в памяти, который требуется передать. |
target
Обязательно
|
Обязательный параметр. Указывает путь к хранилищу данных, куда будут переданы данные кадров данных Parquet. Во избежание конфликта по целевому пути будет создана папка GUID. |
name
Обязательно
|
Обязательное имя зарегистрированного набора данных. |
description
Обязательно
|
Необязательный элемент. Текстовое описание набора данных. Значение по умолчанию — None (Нет). |
tags
Обязательно
|
Необязательный элемент. Словарь тегов значений ключа для предоставления набора данных. Значение по умолчанию — None (Нет). |
show_progress
Обязательно
|
Необязательный параметр. Указывает, демонстрировать ли в консоли ход отправки. Значение по умолчанию — True. |
Возвращаемое значение
Тип | Описание |
---|---|
Зарегистрированный набор данных. |