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


MLTable Класс

Представляет mlTable.

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

Инициализировать новый MLTable.

Этот конструктор не должен вызываться напрямую. MlTable предназначен для создания с помощью load.

Конструктор

MLTable()

Методы

convert_column_types

Добавляет шаг преобразования для преобразования указанных столбцов в соответствующие новые типы.


   from mltable import DataType
       data_types = {
           'ID': DataType.to_string(),
           'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
           'Count': DataType.to_int(),
           'Latitude': DataType.to_float(),
           'Found': DataType.to_bool(),
           'Stream': DataType.to_stream()
       }
drop_columns

Добавляет шаг преобразования для удаления заданных столбцов из набора данных. Если пустой список, кортеж или набор не будут удалены. Повторяющиеся столбцы вызывают UserErrorException.

Попытка удалить столбец, MLTable.traits.timestamp_column или в MLTable.traits.index_columns вызовет userErrorException.

extract_columns_from_partition_format

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

Часть форматирования "{column_name}" создает строковый столбец, а "{column_name:y/MM/dd/HH/mm/ss}" создает столбец datetime, где "гггг", "MM", "dd", "HH", "mm" и "ss" используются для извлечения года, месяца, дня, часа, минуты и секунды для типа datetime.

Формат должен начинаться с позиции первого ключа секции до конца пути к файлу. Например, учитывая путь "/Accounts/2019/01/01/01/data.csv", где секция находится по имени и времени отдела, partition_format='/{Department}/{PartitionDate:y/MM/dd}/data.csv' создает строковый столбец "Отдел" со значением "Учетные записи" и столбцом datetime "PartitionDate" со значением "2019-01-01-01".

filter

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

get_partition_count

Возвращает количество секций данных, связанных с данными, связанными с этим MLTable.

keep_columns

Добавляет шаг преобразования, чтобы сохранить указанные столбцы и удалить все остальные из набора данных. Если пустой список, кортеж или набор не будут удалены. Повторяющиеся столбцы вызывают UserErrorException.

Если столбец в MLTable.traits.timestamp_column или столбцах в MLTable.traits.index_columns не хранится явным образом, пользователь UserErrorException является разбросом.

random_split

Случайным образом разбивает этот MLTable на две таблицы MLTable, одна из которых имеет приблизительно "процент"% исходных данных MLTable, а другая имеет оставшуюся часть (1-"процент"%).

save

Сохраните этот MLTable в виде ФАЙЛА YAML MLTable и его ссоединенных путей к указанному пути к каталогу.

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

Если путь указывает на файл, вызывается userErrorException. Если путь — это путь к каталогу, который уже содержит один или несколько файлов, сохраненных (включая ФАЙЛ YAML MLTable) и перезапись имеет значение False или fail, вызывается UserErrorException. Если путь является удаленным, все локальные пути к файлам, не заданные в качестве совместного пути (путь к файлу относительно каталога, из который был загружен MLTable), вызовет userErrorException.

Совместное управление сохранением связанных путей в пути. Если значение true, файлы копируются в путь вместе с YAML-файлом MLTable в качестве относительных путей к файлам. В противном случае связанные файлы не копируются, удаленные пути остаются в соответствии с заданными, а локальные пути к файлам выполняются относительно перенаправления путей при необходимости. Обратите внимание, что false может привести к неконфикаторным файлам YAML MLTable, которые не рекомендуется, кроме того, если путь удален, это приведет к тому, что userErrorException не поддерживается для удаленных URI.

Обратите внимание, что если mlTable создается программно с такими методами, как from_paths() или from_read_delimited_files() с локальными относительными путями, путь к каталогу MLTable считается текущим рабочим каталогом.

Учитывайте при сохранении новых файлов данных MLTable и связанных с ним файлов данных в каталог с существующим файлом MLTable и связанными файлами данных, которые каталог не очищается от существующих файлов перед сохранением новых файлов. Существующие файлы данных можно сохранить после сохранения новых файлов, особенно если существующие файлы данных не имеют имен, соответствующих новым файлам данных. Если новая mlTable содержит конструктор шаблонов под его путями, это может непреднамеренно изменить MLTable путем связывания существующих файлов данных с новым MLTable.

Если пути к файлам в этом MLTable указывают на существующий файл в пути , но имеют другой универсальный код ресурса (URI), если перезапись имеет значение fail или skip, существующий файл не будет перезаписан (т. е. пропущен).

select_partitions

Добавляет шаг преобразования для выбора секции.

show

Извлекает первые строки этого MLTable в виде кадра данных Pandas.

skip

Добавляет шаг преобразования, чтобы пропустить первые строки счетчика этой MLTable.

take

Добавляет шаг преобразования для выбора первых строк этого MLTable.

take_random_sample

Добавляет шаг преобразования, чтобы случайным образом выбрать каждую строку этого MLTable с вероятностью . Вероятность должна находиться в диапазоне [0, 1]. Может при необходимости задать случайное начальное значение.

to_pandas_dataframe

Загрузите все записи из путей, указанных в файле MLTable, в кадр данных Pandas.

validate

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

convert_column_types

Добавляет шаг преобразования для преобразования указанных столбцов в соответствующие новые типы.


   from mltable import DataType
       data_types = {
           'ID': DataType.to_string(),
           'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
           'Count': DataType.to_int(),
           'Latitude': DataType.to_float(),
           'Found': DataType.to_bool(),
           'Stream': DataType.to_stream()
       }
convert_column_types(column_types)

Параметры

Имя Описание
column_types
Обязательно

Словарь столбца: типы, которые пользователь хочет преобразовать

Возвращаемое значение

Тип Описание

MLTable с добавленным этапом преобразования

drop_columns

Добавляет шаг преобразования для удаления заданных столбцов из набора данных. Если пустой список, кортеж или набор не будут удалены. Повторяющиеся столбцы вызывают UserErrorException.

Попытка удалить столбец, MLTable.traits.timestamp_column или в MLTable.traits.index_columns вызовет userErrorException.

drop_columns(columns: str | List[str] | Tuple[str] | Set[str])

Параметры

Имя Описание
columns
Обязательно
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

столбцы для удаления из этой таблицы MLTable

Возвращаемое значение

Тип Описание

MLTable с добавленным этапом преобразования

extract_columns_from_partition_format

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

Часть форматирования "{column_name}" создает строковый столбец, а "{column_name:y/MM/dd/HH/mm/ss}" создает столбец datetime, где "гггг", "MM", "dd", "HH", "mm" и "ss" используются для извлечения года, месяца, дня, часа, минуты и секунды для типа datetime.

Формат должен начинаться с позиции первого ключа секции до конца пути к файлу. Например, учитывая путь "/Accounts/2019/01/01/01/data.csv", где секция находится по имени и времени отдела, partition_format='/{Department}/{PartitionDate:y/MM/dd}/data.csv' создает строковый столбец "Отдел" со значением "Учетные записи" и столбцом datetime "PartitionDate" со значением "2019-01-01-01".

extract_columns_from_partition_format(partition_format)

Параметры

Имя Описание
partition_format
Обязательно
str

Формат секции для извлечения данных в столбцы

Возвращаемое значение

Тип Описание

MLTable, формат секции которого задан для заданного формата

filter

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

filter(expression)

Параметры

Имя Описание
expression
Обязательно

Выражение для вычисления.

Возвращаемое значение

Тип Описание

MLTable после фильтра

Комментарии

Выражения запускаются путем индексирования mltable с именем столбца. Они поддерживают различные функции и операторы и могут объединяться с помощью логических операторов. Результирующее выражение будет неявно вычисляться для каждой записи при возникновении извлечения данных, а не в том месте, где оно определено.


   filtered_mltable = mltable.filter('feature_1 == "5" and target > "0.5)"')
   filtered_mltable = mltable.filter('col("FBI Code") == "11"')

get_partition_count

Возвращает количество секций данных, связанных с данными, связанными с этим MLTable.

get_partition_count() -> int

Возвращаемое значение

Тип Описание
int

секции данных в этом MLTable

keep_columns

Добавляет шаг преобразования, чтобы сохранить указанные столбцы и удалить все остальные из набора данных. Если пустой список, кортеж или набор не будут удалены. Повторяющиеся столбцы вызывают UserErrorException.

Если столбец в MLTable.traits.timestamp_column или столбцах в MLTable.traits.index_columns не хранится явным образом, пользователь UserErrorException является разбросом.

keep_columns(columns: str | List[str] | Tuple[str] | Set[str])

Параметры

Имя Описание
columns
Обязательно
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

Столбцы в этом MLTable для сохранения

Возвращаемое значение

Тип Описание

MLTable с добавленным этапом преобразования

random_split

Случайным образом разбивает этот MLTable на две таблицы MLTable, одна из которых имеет приблизительно "процент"% исходных данных MLTable, а другая имеет оставшуюся часть (1-"процент"%).

random_split(percent=0.5, seed=None)

Параметры

Имя Описание
percent
Обязательно

процент mlTable для разделения между

seed
Обязательно

необязательное случайное начальное значение

Возвращаемое значение

Тип Описание

два MLTable с данными MLTable, разделенными между ними на "процент"

save

Сохраните этот MLTable в виде ФАЙЛА YAML MLTable и его ссоединенных путей к указанному пути к каталогу.

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

Если путь указывает на файл, вызывается userErrorException. Если путь — это путь к каталогу, который уже содержит один или несколько файлов, сохраненных (включая ФАЙЛ YAML MLTable) и перезапись имеет значение False или fail, вызывается UserErrorException. Если путь является удаленным, все локальные пути к файлам, не заданные в качестве совместного пути (путь к файлу относительно каталога, из который был загружен MLTable), вызовет userErrorException.

Совместное управление сохранением связанных путей в пути. Если значение true, файлы копируются в путь вместе с YAML-файлом MLTable в качестве относительных путей к файлам. В противном случае связанные файлы не копируются, удаленные пути остаются в соответствии с заданными, а локальные пути к файлам выполняются относительно перенаправления путей при необходимости. Обратите внимание, что false может привести к неконфикаторным файлам YAML MLTable, которые не рекомендуется, кроме того, если путь удален, это приведет к тому, что userErrorException не поддерживается для удаленных URI.

Обратите внимание, что если mlTable создается программно с такими методами, как from_paths() или from_read_delimited_files() с локальными относительными путями, путь к каталогу MLTable считается текущим рабочим каталогом.

Учитывайте при сохранении новых файлов данных MLTable и связанных с ним файлов данных в каталог с существующим файлом MLTable и связанными файлами данных, которые каталог не очищается от существующих файлов перед сохранением новых файлов. Существующие файлы данных можно сохранить после сохранения новых файлов, особенно если существующие файлы данных не имеют имен, соответствующих новым файлам данных. Если новая mlTable содержит конструктор шаблонов под его путями, это может непреднамеренно изменить MLTable путем связывания существующих файлов данных с новым MLTable.

Если пути к файлам в этом MLTable указывают на существующий файл в пути , но имеют другой универсальный код ресурса (URI), если перезапись имеет значение fail или skip, существующий файл не будет перезаписан (т. е. пропущен).

save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)

Параметры

Имя Описание
path
Обязательно
str

Путь к каталогу для сохранения в текущий рабочий каталог по умолчанию

colocated
Обязательно

Если значение true, сохраняет копии локальных и удаленных путей к файлам в этом MLTable в качестве относительных путей. В противном случае копирование файлов не происходит, а удаленные пути к файлам сохраняются в соответствии с сохраненным ФАЙЛом YAML MLTable и локальными путями к файлам в качестве относительных путей к файлам с перенаправлением пути. Если путь удален и этот MLTable содержит локальные пути к файлам, будет вызван пользователь UserErrorException.

overwrite
Обязательно
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]

Как существующий ФАЙЛ YAML MLTable и связанные файлы, которые уже могут существовать в пути , обрабатываются. Параметры имеют значение "перезапись" (или "True") для замены существующих файлов, "сбой" (или false), чтобы вызвать ошибку, если файл уже существует, или "пропустить", чтобы оставить существующие файлы как есть. Может также задать значение <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Обязательно

отображает ход копирования в stdout

if_err_remove_files
Обязательно

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

Возвращаемое значение

Тип Описание

этот экземпляр MLTable

select_partitions

Добавляет шаг преобразования для выбора секции.

select_partitions(partition_index_list)

Параметры

Имя Описание
partition_index_list
Обязательно
list of int

список индексов секций

Возвращаемое значение

Тип Описание

MLTable с обновленным размером секции

Комментарии

В следующем фрагменте кода показано, как использовать api select_partitions для выбранных секций из предоставленного MLTable.


   partition_index_list = [1, 2]
   mltable = mltable.select_partitions(partition_index_list)

show

Извлекает первые строки этого MLTable в виде кадра данных Pandas.

show(count=20)

Параметры

Имя Описание
count
Обязательно
int

Количество строк в верхней части таблицы для выбора

Возвращаемое значение

Тип Описание
<xref:Pandas> <xref:Dataframe>

первое число строк MLTable

skip

Добавляет шаг преобразования, чтобы пропустить первые строки счетчика этой MLTable.

skip(count)

Параметры

Имя Описание
count
Обязательно
int

количество строк для пропуска

Возвращаемое значение

Тип Описание

MLTable с добавленным этапом преобразования

take

Добавляет шаг преобразования для выбора первых строк этого MLTable.

take(count=20)

Параметры

Имя Описание
count
Обязательно
int

Количество строк в верхней части таблицы для выбора

Возвращаемое значение

Тип Описание

MLTable с добавленным шагом преобразования "take"

take_random_sample

Добавляет шаг преобразования, чтобы случайным образом выбрать каждую строку этого MLTable с вероятностью . Вероятность должна находиться в диапазоне [0, 1]. Может при необходимости задать случайное начальное значение.

take_random_sample(probability, seed=None)

Параметры

Имя Описание
probability
Обязательно

вероятность выбора каждой строки

seed
Обязательно

необязательное случайное начальное значение

Возвращаемое значение

Тип Описание

MLTable с добавленным этапом преобразования

to_pandas_dataframe

Загрузите все записи из путей, указанных в файле MLTable, в кадр данных Pandas.

to_pandas_dataframe()

Возвращаемое значение

Тип Описание

Кадр данных Pandas, содержащий записи из путей в этой таблице MLTable

Комментарии

В следующем фрагменте кода показано, как использовать API to_pandas_dataframe для получения кадра данных Pandas, соответствующего предоставленному MLTable.


   from mltable import load
   tbl = load('.\samples\mltable_sample')
   pdf = tbl.to_pandas_dataframe()
   print(pdf.shape)

validate

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

validate()

Возвращаемое значение

Тип Описание

Отсутствует

Атрибуты

partition_keys

Возвращает ключи секции.

Возвращаемое значение

Тип Описание

ключи секций

paths

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

Возвращаемое значение

Тип Описание

список диктов, содержащих пути, указанные в MLTable