MLTable Класс
Представляет MLTable.
MLTable определяет ряд отложенно вычисляемых неизменяемых операций для загрузки данных из источника данных. Данные не загружаются из источника до тех пор, пока MLTable не будет предложено доставить данные.
Инициализация новой MLTable.
Этот конструктор не должен вызываться напрямую. MLTable предназначено для создания с помощью load.
- Наследование
-
builtins.objectMLTable
Конструктор
MLTable()
Методы
convert_column_types |
Добавляет шаг преобразования для преобразования указанных столбцов в соответствующие новые типы.
|
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
Обязательно
|
столбцы для удаления из этой таблицы 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
Обязательно
|
Формат секционирования для извлечения данных в столбцы |
Возвращаемое значение
Тип | Описание |
---|---|
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
Возвращаемое значение
Тип | Описание |
---|---|
секции данных в этой mltable |
keep_columns
Добавляет шаг преобразования для сохранения указанных столбцов и удаления всех остальных из набора данных. Если пустой список, кортеж или набор не указан, ничего не удаляется. Повторяющиеся столбцы вызовет исключение UserErrorException.
Если столбец в MLTable.traits.timestamp_column или столбцы в MLTable.traits.index_columns не хранятся явным образом, исключение UserErrorException размечается.
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
Параметры
Имя | Описание |
---|---|
columns
Обязательно
|
столбцы в этой таблицы 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
Обязательно
|
Путь к каталогу для сохранения; по умолчанию — текущий рабочий каталог |
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
Обязательно
|
список индекса секции |
Возвращаемое значение
Тип | Описание |
---|---|
MLTable с обновленным размером секции |
Комментарии
В следующем фрагменте кода показано, как использовать API select_partitions для выбранных секций из предоставленной таблицы MLTable.
partition_index_list = [1, 2]
mltable = mltable.select_partitions(partition_index_list)
show
Извлекает первые строки счетчика этой таблицы MLTable в виде кадра данных Pandas.
show(count=20)
Параметры
Имя | Описание |
---|---|
count
Обязательно
|
количество строк в верхней части таблицы для выбора |
Возвращаемое значение
Тип | Описание |
---|---|
<xref:Pandas> <xref:Dataframe>
|
first count rows of the MLTable |
skip
Добавляет шаг преобразования для пропуска первых строк счетчика этой таблицы MLTable.
skip(count)
Параметры
Имя | Описание |
---|---|
count
Обязательно
|
число пропустимых строк |
Возвращаемое значение
Тип | Описание |
---|---|
MLTable с добавленным этапом преобразования |
take
Добавляет шаг преобразования для выбора первых строк счетчика этой таблицы MLTable.
take(count=20)
Параметры
Имя | Описание |
---|---|
count
Обязательно
|
количество строк в верхней части таблицы для выбора |
Возвращаемое значение
Тип | Описание |
---|---|
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 |