Compartilhar via


MLTable Classe

Representa uma MLTable.

Uma MLTable define uma série de operações imutáveis avaliadas lentamente para carregar dados da fonte de dados. Os dados não são carregados da origem até que a MLTable seja solicitada a fornecer dados.

Inicialize uma nova MLTable.

Esse construtor não deve ser invocado diretamente. A MLTable destina-se a ser criada usando load.

Herança
builtins.object
MLTable

Construtor

MLTable()

Métodos

convert_column_types

Adiciona uma etapa de transformação para converter as colunas especificadas nos respectivos novos tipos especificados.


   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

Adiciona uma etapa de transformação para remover as colunas fornecidas do conjunto de dados. Se uma lista vazia, uma tupla ou um conjunto não for dado, nada será descartado. Colunas duplicadas gerarão uma UserErrorException.

Tentar remover uma coluna que está MLTable.traits.timestamp_column ou em MLTable.traits.index_columns gerará uma UserErrorException.

extract_columns_from_partition_format

Adiciona uma etapa de transformação para usar as informações de partição de cada caminho e extraí-las em colunas com base no formato de partição especificado.

A parte do formato '{column_name}' cria uma coluna de cadeia de caracteres e '{column_name:yyyy/MM/dd/HH/mm/ss}' cria a coluna datetime, na qual 'yyyy', 'MM', 'dd', 'HH', 'mm' e 'ss' são usados para extrair ano, mês, dia, hora, minuto e segundos para o tipo datetime.

O formato deve começar da posição da primeira chave de partição até o final do caminho do arquivo. Por exemplo, considerando o caminho '/Accounts/2019/01/01/data.csv' em que a partição está por nome e hora do departamento, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' cria uma coluna de cadeia de caracteres 'Department' com o valor 'Accounts' e uma coluna datetime 'PartitionDate' com o valor '2019-01-01'.

filter

Filtrar os dados, deixando apenas os registros que correspondam à expressão especificada.

get_partition_count

Retorna o número de partições de dados subjacentes aos dados associados a essa MLTable.

keep_columns

Adiciona uma etapa de transformação para manter as colunas especificadas e remover todas as outras do conjunto de dados. Se uma lista vazia, uma tupla ou um conjunto não for dado, nada será descartado. Colunas duplicadas gerarão uma UserErrorException.

Se a coluna em MLTable.traits.timestamp_column ou colunas em MLTable.traits.index_columns não forem mantidas explicitamente, uma UserErrorException será raiesd.

random_split

Divide aleatoriamente essa MLTable em duas MLTables, uma com aproximadamente "porcentagem" dos dados da MLTable original e a outra com o restante (1-"percent"%).

save

Salve essa MLTable como um arquivo YAML MLTable & seus caminhos assoicados para o caminho de diretório fornecido.

Se o caminho não for fornecido, o padrão será o diretório de trabalho atual. Se o caminho não existir, ele será criado. Se o caminho for remoto, o armazenamento de dados subjacente já deverá existir. Se path for um diretório local & não for absoluto, ele será absoluto.

Se o caminho apontar para um arquivo, um UserErrorException será gerado. Se path for um caminho de diretório que já contenha um ou mais arquivos que estão sendo salvos (incluindo o arquivo YAML MLTable) e overwrite for definido como False ou 'fail', uma UserErrorException será gerada. Se path for remoto, todos os caminhos de arquivos locais não fornecidos como um caminho colocalizado (caminho de arquivo relativo ao diretório do qual a MLTable foi carregada) gerarão uma UserErrorException.

colocated controla como os caminhos associados são salvos no caminho. Se True, os arquivos serão copiados para o caminho junto com o arquivo YAML MLTable como caminhos de arquivo relativos. Caso contrário, os arquivos associados não serão copiados, os caminhos remotos permanecerão conforme fornecido e os caminhos de arquivo local serão feitos em relação ao redirecionamento de caminho, se necessário. Observe que False pode resultar em arquivos YAML MLTable nãocolocados, o que não é recomendado, além disso, se o caminho for remoto, isso resultará em uma UserErrorException, pois não há suporte para redirecionamento de caminho relativo para URIs remotos.

Observe que, se a MLTable for criada programaticamente com métodos como from_paths() ou from_read_delimited_files() com caminhos relativos locais, o caminho do diretório MLTable será considerado o diretório de trabalho atual.

Esteja atento ao salvar um novo MLTable & arquivos de dados associados a um diretório com um arquivo MLTable existente & arquivos de dados associados que o diretório não está limpo dos arquivos existentes antes de salvar os novos arquivos. É possível que os arquivos de dados já existentes persistam depois de salvar os novos arquivos, especialmente se os arquivos de dados existentes não tiverem nomes correspondentes a novos arquivos de dados. Se o novo MLTable contiver um designador de padrão em seus caminhos, isso poderá alterar involuntariamente a MLTable associando arquivos de dados existentes à nova MLTable.

Se os caminhos de arquivo nesta MLTable apontarem para um arquivo existente no caminho , mas tiverem um URI diferente, se a substituição for 'fail' ou 'skip', o arquivo existente não será substituído (ou seja, ignorado).

select_partitions

Adiciona uma etapa de transformação para selecionar a partição.

show

Recupera as primeiras linhas de contagem dessa MLTable como um Dataframe pandas.

skip

Adiciona uma etapa de transformação para ignorar as primeiras linhas de contagem dessa MLTable.

take

Adiciona uma etapa de transformação para selecionar as primeiras linhas de contagem dessa MLTable.

take_random_sample

Adiciona uma etapa de transformação para selecionar aleatoriamente cada linha dessa MLTable com chance de probabilidade . A probabilidade deve estar no intervalo [0, 1]. Opcionalmente, pode definir uma semente aleatória.

to_pandas_dataframe

Carregue todos os registros dos caminhos especificados no arquivo MLTable em um DataFrame pandas.

validate

Valida se os dados dessa MLTable podem ser carregados, requer que as fontes de dados da MLTable sejam acessíveis a partir da computação atual.

convert_column_types

Adiciona uma etapa de transformação para converter as colunas especificadas nos respectivos novos tipos especificados.


   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)

Parâmetros

Nome Description
column_types
Obrigatório

Dicionário de coluna: tipos que o usuário deseja converter

Retornos

Tipo Description

MLTable com etapa de transformação adicionada

drop_columns

Adiciona uma etapa de transformação para remover as colunas fornecidas do conjunto de dados. Se uma lista vazia, uma tupla ou um conjunto não for dado, nada será descartado. Colunas duplicadas gerarão uma UserErrorException.

Tentar remover uma coluna que está MLTable.traits.timestamp_column ou em MLTable.traits.index_columns gerará uma UserErrorException.

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

Parâmetros

Nome Description
columns
Obrigatório
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

colunas a serem retiradas desta MLTable

Retornos

Tipo Description

MLTable com etapa de transformação adicionada

extract_columns_from_partition_format

Adiciona uma etapa de transformação para usar as informações de partição de cada caminho e extraí-las em colunas com base no formato de partição especificado.

A parte do formato '{column_name}' cria uma coluna de cadeia de caracteres e '{column_name:yyyy/MM/dd/HH/mm/ss}' cria a coluna datetime, na qual 'yyyy', 'MM', 'dd', 'HH', 'mm' e 'ss' são usados para extrair ano, mês, dia, hora, minuto e segundos para o tipo datetime.

O formato deve começar da posição da primeira chave de partição até o final do caminho do arquivo. Por exemplo, considerando o caminho '/Accounts/2019/01/01/data.csv' em que a partição está por nome e hora do departamento, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' cria uma coluna de cadeia de caracteres 'Department' com o valor 'Accounts' e uma coluna datetime 'PartitionDate' com o valor '2019-01-01'.

extract_columns_from_partition_format(partition_format)

Parâmetros

Nome Description
partition_format
Obrigatório
str

Formato de partição a ser usado para extrair dados em colunas

Retornos

Tipo Description

MLTable cujo formato de partição é definido como determinado formato

filter

Filtrar os dados, deixando apenas os registros que correspondam à expressão especificada.

filter(expression)

Parâmetros

Nome Description
expression
Obrigatório

A expressão a ser avaliada.

Retornos

Tipo Description

MLTable após o filtro

Comentários

As expressões são iniciadas indexando o mltable com o nome de uma coluna. Elas dão suporte a uma variedade de funções e operadores e podem ser combinadas usando operadores lógicos. A expressão resultante passará por avaliação lenta para cada registro quando ocorrer um pull de dados, e não onde ela está definida.


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

get_partition_count

Retorna o número de partições de dados subjacentes aos dados associados a essa MLTable.

get_partition_count() -> int

Retornos

Tipo Description
int

partições de dados nesta MLTable

keep_columns

Adiciona uma etapa de transformação para manter as colunas especificadas e remover todas as outras do conjunto de dados. Se uma lista vazia, uma tupla ou um conjunto não for dado, nada será descartado. Colunas duplicadas gerarão uma UserErrorException.

Se a coluna em MLTable.traits.timestamp_column ou colunas em MLTable.traits.index_columns não forem mantidas explicitamente, uma UserErrorException será raiesd.

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

Parâmetros

Nome Description
columns
Obrigatório
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

colunas nesta MLTable a serem mantidas

Retornos

Tipo Description

MLTable com etapa de transformação adicionada

random_split

Divide aleatoriamente essa MLTable em duas MLTables, uma com aproximadamente "porcentagem" dos dados da MLTable original e a outra com o restante (1-"percent"%).

random_split(percent=0.5, seed=None)

Parâmetros

Nome Description
percent
Obrigatório

porcentagem da MLTable a ser dividida entre

seed
Obrigatório

semente aleatória opcional

Retornos

Tipo Description

duas MLTables com os dados dessa MLTable divididos entre elas por "porcentagem"

save

Salve essa MLTable como um arquivo YAML MLTable & seus caminhos assoicados para o caminho de diretório fornecido.

Se o caminho não for fornecido, o padrão será o diretório de trabalho atual. Se o caminho não existir, ele será criado. Se o caminho for remoto, o armazenamento de dados subjacente já deverá existir. Se path for um diretório local & não for absoluto, ele será absoluto.

Se o caminho apontar para um arquivo, um UserErrorException será gerado. Se path for um caminho de diretório que já contenha um ou mais arquivos que estão sendo salvos (incluindo o arquivo YAML MLTable) e overwrite for definido como False ou 'fail', uma UserErrorException será gerada. Se path for remoto, todos os caminhos de arquivos locais não fornecidos como um caminho colocalizado (caminho de arquivo relativo ao diretório do qual a MLTable foi carregada) gerarão uma UserErrorException.

colocated controla como os caminhos associados são salvos no caminho. Se True, os arquivos serão copiados para o caminho junto com o arquivo YAML MLTable como caminhos de arquivo relativos. Caso contrário, os arquivos associados não serão copiados, os caminhos remotos permanecerão conforme fornecido e os caminhos de arquivo local serão feitos em relação ao redirecionamento de caminho, se necessário. Observe que False pode resultar em arquivos YAML MLTable nãocolocados, o que não é recomendado, além disso, se o caminho for remoto, isso resultará em uma UserErrorException, pois não há suporte para redirecionamento de caminho relativo para URIs remotos.

Observe que, se a MLTable for criada programaticamente com métodos como from_paths() ou from_read_delimited_files() com caminhos relativos locais, o caminho do diretório MLTable será considerado o diretório de trabalho atual.

Esteja atento ao salvar um novo MLTable & arquivos de dados associados a um diretório com um arquivo MLTable existente & arquivos de dados associados que o diretório não está limpo dos arquivos existentes antes de salvar os novos arquivos. É possível que os arquivos de dados já existentes persistam depois de salvar os novos arquivos, especialmente se os arquivos de dados existentes não tiverem nomes correspondentes a novos arquivos de dados. Se o novo MLTable contiver um designador de padrão em seus caminhos, isso poderá alterar involuntariamente a MLTable associando arquivos de dados existentes à nova MLTable.

Se os caminhos de arquivo nesta MLTable apontarem para um arquivo existente no caminho , mas tiverem um URI diferente, se a substituição for 'fail' ou 'skip', o arquivo existente não será substituído (ou seja, ignorado).

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

Parâmetros

Nome Description
path
Obrigatório
str

caminho do diretório para salvar, padrão para o diretório de trabalho atual

colocated
Obrigatório

Se True, salva cópias de caminhos de arquivo remotos & locais nesta MLTable no caminho como caminhos relativos. Caso contrário, nenhuma cópia de arquivo ocorrerá e os caminhos de arquivo remotos serão salvos conforme fornecido ao arquivo YAML da MLTable salvo e aos caminhos de arquivo local como caminhos de arquivo relativos com redirecionamento de caminho. Se o caminho for remoto & essa MLTable contiver caminhos de arquivo locais, um UserErrorException será gerado.

overwrite
Obrigatório
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]

Como um arquivo YAML MLTable existente e arquivos associados que podem já existir no caminho são tratados. As opções são 'substituir' (ou True) para substituir todos os arquivos existentes, 'fail' (ou False) para gerar um erro se um arquivo já existir ou 'skip' para deixar os arquivos existentes como estão. Também pode definir com <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Obrigatório

exibe o progresso da cópia para stdout

if_err_remove_files
Obrigatório

se ocorrer algum erro durante o salvamento, todos os arquivos salvos com êxito serão removidos para tornar a operação atômica

Retornos

Tipo Description

esta instância de MLTable

select_partitions

Adiciona uma etapa de transformação para selecionar a partição.

select_partitions(partition_index_list)

Parâmetros

Nome Description
partition_index_list
Obrigatório
list of int

lista de índice de partição

Retornos

Tipo Description

MLTable com o tamanho da partição atualizado

Comentários

O snippet de código a seguir mostra como usar a API select_partitions para partições selecionadas da MLTable fornecida.


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

show

Recupera as primeiras linhas de contagem dessa MLTable como um Dataframe pandas.

show(count=20)

Parâmetros

Nome Description
count
Obrigatório
int

número de linhas da parte superior da tabela a serem selecionadas

Retornos

Tipo Description
<xref:Pandas> <xref:Dataframe>

primeira contagem de linhas da MLTable

skip

Adiciona uma etapa de transformação para ignorar as primeiras linhas de contagem dessa MLTable.

skip(count)

Parâmetros

Nome Description
count
Obrigatório
int

número de linhas a serem ignoradas

Retornos

Tipo Description

MLTable com etapa de transformação adicionada

take

Adiciona uma etapa de transformação para selecionar as primeiras linhas de contagem dessa MLTable.

take(count=20)

Parâmetros

Nome Description
count
Obrigatório
int

número de linhas da parte superior da tabela a serem selecionadas

Retornos

Tipo Description

MLTable com a etapa de transformação "take" adicionada

take_random_sample

Adiciona uma etapa de transformação para selecionar aleatoriamente cada linha dessa MLTable com chance de probabilidade . A probabilidade deve estar no intervalo [0, 1]. Opcionalmente, pode definir uma semente aleatória.

take_random_sample(probability, seed=None)

Parâmetros

Nome Description
probability
Obrigatório

chance de cada linha ser selecionada

seed
Obrigatório

semente aleatória opcional

Retornos

Tipo Description

MLTable com etapa de transformação adicionada

to_pandas_dataframe

Carregue todos os registros dos caminhos especificados no arquivo MLTable em um DataFrame pandas.

to_pandas_dataframe()

Retornos

Tipo Description

Dataframe do Pandas que contém os registros de caminhos nesta MLTable

Comentários

O snippet de código a seguir mostra como usar a API to_pandas_dataframe para obter um dataframe pandas correspondente ao MLTable fornecido.


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

validate

Valida se os dados dessa MLTable podem ser carregados, requer que as fontes de dados da MLTable sejam acessíveis a partir da computação atual.

validate()

Retornos

Tipo Description

Nenhum

Atributos

partition_keys

Retorna as chaves de partição

Retornos

Tipo Description

as chaves de partição

paths

Retorna uma lista de dicionários que contêm os caminhos originais fornecidos a essa MLTable. Os caminhos de arquivo local relativos são considerados relativos ao diretório do qual o arquivo YAML MLTable da qual essa instância de MLTable foi carregada.

Retornos

Tipo Description

lista de dicts que contêm caminhos especificados na MLTable