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')
Параметры
Путь к исходным файлам, который может быть одним значением или списком строки URL-адреса (http[s]|abfs[s]|wasb[s]), DataPath объектом или кортежем и относительным Datastore путем. Обратите внимание, что список путей не может одновременно включать и URL-адреса, и хранилища данных.
- validate
- bool
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления. Кроме того, чтобы отключить проверку, для "infer_column_types" нужно задать значение False.
- include_path
- bool
Логическое значение для сохранения сведений о пути в виде столбца в наборе данных. Значение по умолчанию — False. Это удобно, если при считывании нескольких файлов необходимо иметь возможность определить, из какого файла поступила определенная запись, или сохранить полезную информацию в пути к файлу.
- infer_column_types
- bool
Логическое значение для определения типов данных столбца. Значение по умолчанию — True. Для определение типа необходимо, чтобы источник данных был доступен из текущего вычисления. Сейчас определение типа извлекает только первые 200 строк. Если данные содержат несколько типов значений, лучше предоставить требуемый тип в качестве переопределения с использованием аргумента set_column_types. Примеры кода для set_column_types см. в разделе примечаний.
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType.
- header
- bool или PromoteHeadersBehavior
Управляет повышением уровня заголовков столбцов при чтении из файлов. По умолчанию имеет значение True для всех файлов с одинаковым заголовком. Если header=False, считается, что файл не имеет заголовка. Дополнительные параметры можно указать с помощью значения перечисления PromoteHeadersBehavior.
- partition_format
- str
Укажите формат раздела пути. Значение по умолчанию — 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
- bool
По умолчанию (support_multi_line=False) все разрывы строк, в том числе в значениях полей в кавычках, будут интерпретироваться как разрыв записи. Считывание данных таким способом выполняется быстрее и более оптимизировано для параллельного выполнения на нескольких ядрах ЦП. Однако это может привести к автоматическому созданию дополнительных записей с несогласованными значениями полей. Этот параметр должен принимать значение True, если известно, что файлы с разделителями содержат заключенные в кавычки разрывы строк.
Для этого CSV-файла, приведенного в качестве примера, данные будут считываться по-разному в зависимости от support_multi_line.
A,B,C A1,B1,C1 A2,"B 2",C2
from azureml.core import Dataset, Datastore
from azureml.data.datapath import DataPath
# default behavior: support_multi_line=False
dataset = Dataset.Tabular.from_delimited_files(path=datastore_path)
print(dataset.to_pandas_dataframe())
# A B C
# 0 A1 B1 C1
# 1 A2 B None
# 2 2" C2 None
# to handle quoted line breaks
dataset = Dataset.Tabular.from_delimited_files(path=datastore_path,
support_multi_line=True)
print(dataset.to_pandas_dataframe())
# A B C
# 0 A1 B1 C1
# 1 A2 B\r\n2 C2
- empty_as_string
- bool
Указывает, должны ли значения пустых полей загружаться как пустые строки. Для значения по умолчанию (False) пустые значения полей будут считываться как NULL. Если передать для этого поля True, значения пустых полей будут считываться в виде пустых строк. Если значения преобразуются в число или дату и время, этот параметр не учитывается, так как пустые значения преобразуются в NULL.
- encoding
- str
Указывает кодировку файла. Поддерживаются следующие кодировки: "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')
Параметры
Путь к исходным файлам, который может быть одним значением или списком строки URL-адреса (http[s]|abfs[s]|wasb[s]), DataPath объектом или кортежем и относительным Datastore путем. Обратите внимание, что список путей не может одновременно включать и URL-адреса, и хранилища данных.
- validate
- bool
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления.
- include_path
- bool
Логическое значение для сохранения сведений о пути в виде столбца в наборе данных. Значение по умолчанию — False. Это удобно, если при считывании нескольких файлов необходимо иметь возможность определить, из какого файла поступила определенная запись, или сохранить полезную информацию в пути к файлу.
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType.
- partition_format
- str
Укажите формат раздела пути. Значение по умолчанию — 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
- str
Порядок обработки строк, которые являются недопустимыми объектами JSON. Поддерживаются значения "error" и "drop".
- encoding
- str
Указывает кодировку файла. Поддерживаются следующие кодировки: "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)
Параметры
Путь к исходным файлам, который может быть одним значением или списком строки URL-адреса (http[s]|abfs[s]|wasb[s]), DataPath объектом или кортежем и относительным Datastore путем. Обратите внимание, что список путей не может одновременно включать и URL-адреса, и хранилища данных.
- validate
- bool
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления.
- include_path
- bool
Логическое значение для сохранения сведений о пути в виде столбца в наборе данных. Значение по умолчанию — False. Это удобно, если при считывании нескольких файлов необходимо иметь возможность определить, из какого файла поступила определенная запись, или сохранить полезную информацию в пути к файлу.
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — DataType.
- partition_format
- str
Укажите формат раздела пути. Значение по умолчанию — 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)
Параметры
- validate
- bool
Указывает, следует ли проверять возможность загрузки данных из возвращенного набора данных. Значение по умолчанию — True. Для проверки необходимо, чтобы источник данных был доступен из текущего вычисления.
Словарь для задания типа данных столбца, где ключ — это имя столбца, а значение — 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 для отправки.
Обязательный параметр. Указывает путь к хранилищу данных, куда будут переданы данные кадров данных Parquet. Во избежание конфликта по целевому пути будет создана папка GUID.
- description
- str
Необязательный элемент. Текстовое описание набора данных. Значение по умолчанию — None (Нет).
Необязательный элемент. Словарь тегов значений ключа для предоставления набора данных. Значение по умолчанию — None (Нет).
- show_progress
- bool
Необязательный параметр. Указывает, демонстрировать ли в консоли ход отправки. Значение по умолчанию — 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
- DataFrame
Обязательный параметр. Указывает кадр данных в памяти, который требуется передать.
Обязательный параметр. Указывает путь к хранилищу данных, куда будут переданы данные кадров данных Parquet. Во избежание конфликта по целевому пути будет создана папка GUID.
- description
- int
Необязательный элемент. Текстовое описание набора данных. Значение по умолчанию — None (Нет).
Необязательный элемент. Словарь тегов значений ключа для предоставления набора данных. Значение по умолчанию — None (Нет).
- show_progress
- bool
Необязательный параметр. Указывает, демонстрировать ли в консоли ход отправки. Значение по умолчанию — 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
- DataFrame
Обязательный параметр. Указывает кадр данных в памяти, который требуется передать.
Обязательный параметр. Указывает путь к хранилищу данных, куда будут переданы данные кадров данных Parquet. Во избежание конфликта по целевому пути будет создана папка GUID.
- description
- str
Необязательный элемент. Текстовое описание набора данных. Значение по умолчанию — None (Нет).
Необязательный элемент. Словарь тегов значений ключа для предоставления набора данных. Значение по умолчанию — None (Нет).
- show_progress
- bool
Необязательный параметр. Указывает, демонстрировать ли в консоли ход отправки. Значение по умолчанию — True.
Возвращаемое значение
Зарегистрированный набор данных.
Возвращаемый тип
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по