Partilhar via


MLTable Classe

Representa um MLTable.

Um MLTable define uma série de operações preguiçosamente avaliadas e imutáveis para carregar dados da fonte de dados. Os dados não são carregados da fonte até que o MLTable seja solicitado a fornecer dados.

Inicialize um novo MLTable.

Este construtor não deve ser invocado diretamente. MLTable destina-se a ser criado usando load.

Construtor

MLTable()

Métodos

convert_column_types

Adiciona uma etapa de transformação para converter as colunas especificadas em seus respetivos 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 soltar as colunas fornecidas do conjunto de dados. Se uma lista vazia, tupla ou conjunto for dado, nada será descartado. Colunas duplicadas gerarão um UserErrorException.

Tentar soltar uma coluna que está 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 coluna de cadeia de caracteres e '{column_name:aaaa/MM/dd/HH/mm/ss}' cria coluna datetime, onde 'aaaa', '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 a partir da posição da primeira chave de partição até o final do caminho do arquivo. Por exemplo, dado o caminho '/Accounts/2019/01/01/data.csv' onde a partição é por nome de departamento e hora, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' cria uma coluna de string 'Department' com o valor 'Accounts' e uma coluna datetime 'PartitionDate' com o valor '2019-01-01'.

filter

Filtre os dados, deixando apenas os registros que correspondem à expressão especificada.

get_partition_count

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

keep_columns

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

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

random_split

Divide aleatoriamente este MLTable em dois MLTables, um com aproximadamente "percentual"% dos dados do MLTable original e o outro com o restante (1-"percentual"%).

save

Salve este MLTable como um arquivo YAML MLTable & seus caminhos associados para o caminho de diretório determinado.

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á deve existir. Se o caminho é um diretório local & não é absoluto, ele se torna absoluto.

Se o caminho apontar para um arquivo, um UserErrorException será gerado. Se path for um caminho de diretório que já contém 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 colocalizado (caminho de arquivo relativo ao diretório do qual o MLTable foi carregado) gerarão um UserErrorException.

colocated controla como os caminhos associados são salvos no caminho. Se True, os arquivos são copiados para o caminho ao lado do arquivo MLTable YAML como caminhos de arquivo relativos. Caso contrário, os arquivos associados não são copiados, os caminhos remotos permanecem como fornecidos e os caminhos de arquivo locais são relativizados com o redirecionamento de caminho, se necessário. Observe que False pode resultar em arquivos YAML MLTable não colocalizados, o que não é recomendado, além disso, se o caminho for remoto, isso resultará em um UserErrorException, pois o redirecionamento de caminho relativo não é suportado para URIs remotos.

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

Ao salvar um novo MLTable & arquivos de dados associados em um diretório com um arquivo MLTable existente & arquivos de dados associados que o diretório não está limpo de 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 sob seus caminhos, isso poderá alterar involuntariamente o MLTable associando arquivos de dados existentes ao novo 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 'falhar' ou 'ignorar', 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 Pandas Dataframe.

skip

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

take

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

take_random_sample

Adiciona uma etapa de transformação para selecionar aleatoriamente cada linha deste 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 Pandas DataFrame.

validate

Valida se os dados deste MLTable podem ser carregados, requer que a(s) fonte(s) de dados do MLTable estejam acessíveis a partir da computação atual.

convert_column_types

Adiciona uma etapa de transformação para converter as colunas especificadas em seus respetivos 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

Name Description
column_types
Necessário

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

Devoluções

Tipo Description

MLTable com etapa de transformação adicionada

drop_columns

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

Tentar soltar uma coluna que está 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

Name Description
columns
Necessário
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

coluna(s) a descartar deste MLTable

Devoluções

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 coluna de cadeia de caracteres e '{column_name:aaaa/MM/dd/HH/mm/ss}' cria coluna datetime, onde 'aaaa', '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 a partir da posição da primeira chave de partição até o final do caminho do arquivo. Por exemplo, dado o caminho '/Accounts/2019/01/01/data.csv' onde a partição é por nome de departamento e hora, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' cria uma coluna de string '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

Name Description
partition_format
Necessário
str

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

Devoluções

Tipo Description

MLTable cujo formato de partição está definido para determinado formato

filter

Filtre os dados, deixando apenas os registros que correspondem à expressão especificada.

filter(expression)

Parâmetros

Name Description
expression
Necessário

A expressão a avaliar.

Devoluções

Tipo Description

MLTable após o filtro

Observações

As expressões são iniciadas indexando o mltable com o nome de uma coluna. Eles suportam uma variedade de funções e operadores e podem ser combinados usando operadores lógicos. A expressão resultante será avaliada preguiçosamente para cada registro quando ocorrer uma extração de dados e não onde ela for definida.


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

get_partition_count

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

get_partition_count() -> int

Devoluções

Tipo Description
int

partições de dados neste MLTable

keep_columns

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

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

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

Parâmetros

Name Description
columns
Necessário
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

coluna(s) neste MLTable para manter

Devoluções

Tipo Description

MLTable com etapa de transformação adicionada

random_split

Divide aleatoriamente este MLTable em dois MLTables, um com aproximadamente "percentual"% dos dados do MLTable original e o outro com o restante (1-"percentual"%).

random_split(percent=0.5, seed=None)

Parâmetros

Name Description
percent
Necessário

percentagem do MLTable para dividir entre

seed
Necessário

sementes aleatórias opcionais

Devoluções

Tipo Description

dois MLTables com os dados deste MLTable divididos entre eles por "porcentagem"

save

Salve este MLTable como um arquivo YAML MLTable & seus caminhos associados para o caminho de diretório determinado.

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á deve existir. Se o caminho é um diretório local & não é absoluto, ele se torna absoluto.

Se o caminho apontar para um arquivo, um UserErrorException será gerado. Se path for um caminho de diretório que já contém 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 colocalizado (caminho de arquivo relativo ao diretório do qual o MLTable foi carregado) gerarão um UserErrorException.

colocated controla como os caminhos associados são salvos no caminho. Se True, os arquivos são copiados para o caminho ao lado do arquivo MLTable YAML como caminhos de arquivo relativos. Caso contrário, os arquivos associados não são copiados, os caminhos remotos permanecem como fornecidos e os caminhos de arquivo locais são relativizados com o redirecionamento de caminho, se necessário. Observe que False pode resultar em arquivos YAML MLTable não colocalizados, o que não é recomendado, além disso, se o caminho for remoto, isso resultará em um UserErrorException, pois o redirecionamento de caminho relativo não é suportado para URIs remotos.

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

Ao salvar um novo MLTable & arquivos de dados associados em um diretório com um arquivo MLTable existente & arquivos de dados associados que o diretório não está limpo de 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 sob seus caminhos, isso poderá alterar involuntariamente o MLTable associando arquivos de dados existentes ao novo 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 'falhar' ou 'ignorar', 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

Name Description
path
Necessário
str

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

colocated
Necessário

Se True, salva cópias de caminhos de arquivo locais ou remotos neste MLTable sob caminho como caminhos relativos. Caso contrário, nenhuma cópia de arquivo ocorre e os caminhos de arquivos remotos são salvos como dados ao arquivo YAML MLTable salvo e caminhos de arquivos locais como caminhos de arquivo relativos com redirecionamento de caminho. Se path for remote & este MLTable contiver caminhos de arquivo locais, uma UserErrorException será gerada.

overwrite
Necessá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 quaisquer ficheiros existentes, 'falhar' (ou False) para gerar um erro se já existir um ficheiro ou 'saltar' para deixar os ficheiros existentes como estão. Pode também definir com <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Necessário

Exibe o progresso da cópia para stdout

if_err_remove_files
Necessário

Se ocorrer algum erro durante a gravação, remova todos os arquivos salvos com êxito para tornar a operação atômica

Devoluções

Tipo Description

esta instância MLTable

select_partitions

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

select_partitions(partition_index_list)

Parâmetros

Name Description
partition_index_list
Necessário
list of int

Lista de índice de partição

Devoluções

Tipo Description

MLTable com tamanho de partição atualizado

Observações

O trecho de código a seguir mostra como usar a api select_partitions para partições selecionadas do MLTable fornecido.


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

show

Recupera as primeiras linhas de contagem deste MLTable como um Pandas Dataframe.

show(count=20)

Parâmetros

Name Description
count
Necessário
int

número de linhas da parte superior da tabela para selecionar

Devoluções

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

primeiras linhas de contagem do MLTable

skip

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

skip(count)

Parâmetros

Name Description
count
Necessário
int

Número de linhas a ignorar

Devoluções

Tipo Description

MLTable com etapa de transformação adicionada

take

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

take(count=20)

Parâmetros

Name Description
count
Necessário
int

número de linhas da parte superior da tabela para selecionar

Devoluções

Tipo Description

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

take_random_sample

Adiciona uma etapa de transformação para selecionar aleatoriamente cada linha deste 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

Name Description
probability
Necessário

chance de que cada linha seja selecionada

seed
Necessário

sementes aleatórias opcionais

Devoluções

Tipo Description

MLTable com etapa de transformação adicionada

to_pandas_dataframe

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

to_pandas_dataframe()

Devoluções

Tipo Description

Pandas Dataframe contendo os registros de caminhos neste MLTable

Observações

O trecho 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 deste MLTable podem ser carregados, requer que a(s) fonte(s) de dados do MLTable estejam acessíveis a partir da computação atual.

validate()

Devoluções

Tipo Description

Nenhum

Atributos

partition_keys

Retorne as chaves de partição.

Devoluções

Tipo Description

as chaves de partição

paths

Retorna uma lista de dicionários contendo os caminhos originais dados a este MLTable. Presume-se que os caminhos de arquivo locais relativos sejam relativos ao diretório de onde o arquivo MLTable YAML dessa instância MLTable foi carregado.

Devoluções

Tipo Description

lista de ditames contendo caminhos especificados no MLTable