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


MLTable Класс

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

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

Инициализация новой MLTable.

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

Наследование
builtins.object
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()
       }
drop_columns

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

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

extract_columns_from_partition_format

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

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

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

filter

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

get_partition_count

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

keep_columns

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

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

random_split

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

save

Сохраните эту MLTable как YAML-файл MLTable & ее путами с заданным путем к каталогу.

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

Если путь указывает на файл, возникает исключение UserErrorException. Если path — это путь к каталогу, который уже содержит один или несколько сохраненных файлов (включая 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 указывают на существующий файл в пути , но имеют другой универсальный код ресурса (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: гггг/ММ/дд/ЧЧ/мм/сс}" создает столбец datetime, где "гггг", "ММ", "дд", "ЧЧ", "мм" и "сс" используются для извлечения года, месяца, дня, часа, минуты и секунды для типа datetime.

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

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

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
Обязательно

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

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

Тип Описание

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

save

Сохраните эту MLTable как YAML-файл MLTable & ее путами с заданным путем к каталогу.

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

Если путь указывает на файл, возникает исключение UserErrorException. Если path — это путь к каталогу, который уже содержит один или несколько сохраненных файлов (включая 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 указывают на существующий файл в пути , но имеют другой универсальный код ресурса (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 и связанные файлы, которые уже могут существовать в пути . Параметры: overwrite (или True) для замены существующих файлов, fail (или False), чтобы вызвать ошибку, если файл уже существует, или skip, чтобы оставить существующие файлы как есть. Можно также задать с <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>

first count rows of the 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.

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

Тип Описание

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