MLTable Classe
Representa uma MLTable.
Uma MLTable define uma série de operações imutáveis avaliadas de forma preguiçosa para carregar dados da fonte de dados. Os dados não são carregados da origem até que o MLTable seja solicitado a fornecer dados.
Inicialize uma nova MLTable.
Este construtor não deve ser invocado diretamente. A MLTable destina-se a ser criada usando load.
Construtor
MLTable()
Métodos
convert_column_types |
Adiciona uma etapa de transformação para converter as colunas especificadas em seus respectivos novos tipos especificados.
|
drop_columns |
Adiciona uma etapa de transformação para remover as colunas fornecidas do conjunto de dados. Se uma lista vazia, tupla ou conjunto receber nada for descartado. Colunas duplicadas gerarão um UserErrorException. A tentativa de remover uma coluna MLTable.traits.timestamp_column ou em MLTable.traits.index_columns gerará um 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 de formato '{column_name}' cria a coluna de cadeia de caracteres e '{column_name:yyyyy/MM/dd/HH/mm/ss}' cria a coluna datetime, em que 'yyyyy', 'MM', 'dd', 'HH', 'mm' e 'ss' são usados para extrair ano, mês, dia, hora, minuto e segundo 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 '/Contas/2019/01/01/data.csv' em que a partição é por nome e hora do departamento, partition_format='/{Department}/{PartitionDate:yyyyy/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, tupla ou conjunto receber nada for descartado. Colunas duplicadas gerarão um UserErrorException. Se a coluna em MLTable.traits.timestamp_column ou colunas no MLTable.traits.index_columns não for mantida 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"por cento"%). |
save |
Salve esse MLTable como um arquivo YAML MLTable e 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 o caminho for um diretório local e não for absoluto, ele será absoluto. Se o caminho apontar para um arquivo, um UserErrorException será gerado. Se o caminho for um caminho de diretório que já contenha um ou mais arquivos sendo salvos (incluindo o arquivo YAML MLTable) e a substituição estiver definida como False ou 'fail' - um UserErrorException será gerado. Se o caminho for remoto, quaisquer caminhos de arquivos locais não fornecidos como um caminho colocado (caminho de arquivo relativo ao diretório do qual a MLTable foi carregada) gerarão um 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 como fornecidos e os caminhos de arquivo locais serão feitos em relação ao redirecionamento de caminho, se necessário. Observe que False pode resultar em arquivos YAML MLTable não coletados que não são recomendados, além disso, se o caminho for remoto, isso resultará em um UserErrorException, pois não há suporte para redirecionamento de caminho relativo para URIs remotas. 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 e 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 que correspondam 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 neste 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 deste MLTable como um Dataframe do Pandas. |
skip |
Adiciona uma etapa de transformação para ignorar as primeiras linhas de contagem desta MLTable. |
take |
Adiciona uma etapa de transformação para selecionar as primeiras linhas de contagem desta MLTable. |
take_random_sample |
Adiciona uma etapa de transformação para selecionar aleatoriamente cada linha desta 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 do 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 em seus 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 colunas: 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, tupla ou conjunto receber nada for descartado. Colunas duplicadas gerarão um UserErrorException.
A tentativa de remover uma coluna MLTable.traits.timestamp_column ou em MLTable.traits.index_columns gerará um UserErrorException.
drop_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parâmetros
Nome | Description |
---|---|
columns
Obrigatório
|
coluna(s) a serem retiradas deste 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 de formato '{column_name}' cria a coluna de cadeia de caracteres e '{column_name:yyyyy/MM/dd/HH/mm/ss}' cria a coluna datetime, em que 'yyyyy', 'MM', 'dd', 'HH', 'mm' e 'ss' são usados para extrair ano, mês, dia, hora, minuto e segundo 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 '/Contas/2019/01/01/data.csv' em que a partição é por nome e hora do departamento, partition_format='/{Department}/{PartitionDate:yyyyy/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
|
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. Eles dão suporte a uma variedade de funções e operadores e podem ser combinados usando operadores lógicos. A expressão resultante será avaliada de forma preguiçosa para cada registro quando ocorrer um pull de dados e não onde ele for definido.
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 |
---|---|
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, tupla ou conjunto receber nada for descartado. Colunas duplicadas gerarão um UserErrorException.
Se a coluna em MLTable.traits.timestamp_column ou colunas no MLTable.traits.index_columns não for mantida explicitamente, uma UserErrorException será raiesd.
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parâmetros
Nome | Description |
---|---|
columns
Obrigatório
|
colunas(s) neste MLTable para manter |
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"por cento"%).
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 |
---|---|
dois MLTables com os dados dessa MLTable divididos entre eles por "porcentagem" |
save
Salve esse MLTable como um arquivo YAML MLTable e 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 o caminho for um diretório local e não for absoluto, ele será absoluto.
Se o caminho apontar para um arquivo, um UserErrorException será gerado. Se o caminho for um caminho de diretório que já contenha um ou mais arquivos sendo salvos (incluindo o arquivo YAML MLTable) e a substituição estiver definida como False ou 'fail' - um UserErrorException será gerado. Se o caminho for remoto, quaisquer caminhos de arquivos locais não fornecidos como um caminho colocado (caminho de arquivo relativo ao diretório do qual a MLTable foi carregada) gerarão um 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 como fornecidos e os caminhos de arquivo locais serão feitos em relação ao redirecionamento de caminho, se necessário. Observe que False pode resultar em arquivos YAML MLTable não coletados que não são recomendados, além disso, se o caminho for remoto, isso resultará em um UserErrorException, pois não há suporte para redirecionamento de caminho relativo para URIs remotas.
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 e 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 que correspondam 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 neste 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
|
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 local e remoto neste MLTable no caminho como caminhos relativos. Caso contrário, nenhuma cópia de arquivo ocorre e caminhos de arquivo remotos são salvos conforme dado ao arquivo YAML MLTable salvo e caminhos de arquivo local como caminhos de arquivo relativos com redirecionamento de caminho. Se o caminho for remoto e este MLTable contiver caminhos de arquivo locais, um UserErrorException será gerado. |
overwrite
Obrigatório
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
A existência de um arquivo YAML MLTable e arquivos associados que já podem existir no caminho são tratados. As opções são 'substituir' (ou True) para substituir arquivos existentes, 'fail' (ou False) para gerar um erro se já existir um arquivo ou 'skip' para deixar arquivos existentes como está. Também pode ser definido 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, remova todos os arquivos salvos com êxito 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
|
lista de índice de partição |
Retornos
Tipo | Description |
---|---|
MLTable com tamanho de 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 deste MLTable como um Dataframe do Pandas.
show(count=20)
Parâmetros
Nome | Description |
---|---|
count
Obrigatório
|
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 desta MLTable.
skip(count)
Parâmetros
Nome | Description |
---|---|
count
Obrigatório
|
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 desta MLTable.
take(count=20)
Parâmetros
Nome | Description |
---|---|
count
Obrigatório
|
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 desta 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 do 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
paths
Retorna uma lista de dicionários que contêm os caminhos originais fornecidos para esta MLTable. Os caminhos de arquivo locais 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 ditados que contêm caminhos especificados na MLTable |