MLTable Classe
Representa uma MLTable.
Uma MLTable define uma série de operações imutáveis e avaliadas de forma preguiçosa para carregar dados da origem de dados. Os dados não são carregados a partir da origem até que seja pedido à MLTable que forneça dados.
Inicialize uma nova MLTable.
Este construtor não deve ser invocado diretamente. A MLTable destina-se a ser criada com load.
- Herança
-
builtins.objectMLTable
Construtor
MLTable()
Métodos
convert_column_types |
Adiciona um passo de transformação para converter as colunas especificadas nos respetivos novos tipos especificados.
|
drop_columns |
Adiciona um passo de transformação para remover as colunas fornecidas do conjunto de dados. Se uma lista vazia, cadeia de identificação ou conjunto não receber nada é ignorado. As colunas duplicadas gerarão uma UserErrorException. Tentar remover uma coluna MLTable.traits.timestamp_column ou em MLTable.traits.index_columns irá gerar uma UserErrorException. |
extract_columns_from_partition_format |
Adiciona um passo de transformação para utilizar as informações de partição de cada caminho e extraí-las em colunas com base no formato de partição especificado. Formatar a parte '{column_name}' cria a coluna de cadeia e '{column_name:aaaa/MM/dd/HH/mm/ss}' cria a coluna datetime, em que 'aaaa', 'MM', 'dd', 'HH', 'mm' e 'ss' são utilizados 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é ao fim do caminho do ficheiro. Por exemplo, dado o caminho "/Accounts/2019/01/01/data.csv" em que a partição é por nome e hora do departamento, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' cria uma coluna de cadeia "Department" com o valor "Accounts" e uma coluna datetime "PartitionDate" com o valor "2019-01-01". |
filter |
Filtre os dados, deixando apenas os registos que correspondem à expressão especificada. |
get_partition_count |
Devolve o número de partições de dados subjacentes aos dados associados a esta MLTable. |
keep_columns |
Adiciona um passo de transformação para manter as colunas especificadas e remover todas as outras do conjunto de dados. Se uma lista vazia, cadeia de identificação ou conjunto não receber nada é ignorado. As colunas duplicadas gerarão uma UserErrorException. Se a coluna em MLTable.traits.timestamp_column ou colunas no MLTable.traits.index_columns não for explicitamente mantida, é efetuada uma raiesd userErrorException. |
random_split |
Divide aleatoriamente esta MLTable em duas MLTables, uma com aproximadamente "percentagem"% dos dados originais da MLTable e a outra com o resto (1"%"%). |
save |
Guarde esta MLTable como um ficheiro YAML de MLTable & os respetivos caminhos assóicos para o caminho de diretório especificado. Se o caminho não for indicado, a predefinição é o diretório de trabalho atual. Se o caminho não existir, será criado. Se o caminho for remoto, o arquivo de dados subjacente já tem de existir. Se caminho for um diretório local & não for absoluto, torna-se absoluto. Se o caminho apontar para um ficheiro, será gerado um UserErrorException. Se path for um caminho de diretório que já contenha um ou mais ficheiros guardados (incluindo o ficheiro YAML MLTable) e a substituição estiver definida como Falso ou "falha" – é criada uma UserErrorException. Se o caminho for remoto, todos os caminhos de ficheiros locais não fornecidos como um caminho colocalizado (caminho do ficheiro relativo ao diretório a partir do qual a MLTable foi carregada) gerarão uma UserErrorException. colocalizado controla a forma como os caminhos associados são guardados no caminho. Se For Verdadeiro, os ficheiros são copiados para o caminho juntamente com o ficheiro YAML MLTable como caminhos de ficheiro relativos. Caso contrário, os ficheiros associados não são copiados, os caminhos remotos permanecem conforme indicado e os caminhos de ficheiro locais são tornados relativos com o redirecionamento de caminho, se necessário. Tenha em atenção que Falso pode resultar em ficheiros YAML de MLTable não a cores que não são recomendados, além disso, se o caminho for remoto, tal resultará numa UserErrorException, uma vez que o redirecionamento de caminho relativo não é suportado para URIs remotos. Tenha em atenção que se a MLTable for criada programaticamente com métodos como from_paths() ou from_read_delimited_files() com caminhos relativos locais, assume-se que o caminho do diretório MLTable é o diretório de trabalho atual. Tenha em atenção ao guardar um novo MLTable & ficheiros de dados associados a um diretório com um ficheiro MLTable existente & ficheiros de dados associados que o diretório não está limpo dos ficheiros existentes antes de guardar os novos ficheiros. É possível que os ficheiros de dados já existentes persistam depois de guardar os novos ficheiros, especialmente se os ficheiros de dados existentes não tiverem nomes que correspondam a novos ficheiros de dados. Se a nova MLTable contiver um designador de padrão nos respetivos caminhos, isto poderá alterar involuntariamente a MLTable ao associar ficheiros de dados existentes à nova MLTable. Se os caminhos de ficheiro nesta MLTable apontarem para um ficheiro existente no caminho , mas tiverem um URI diferente, se a substituição for "falha" ou "ignorar" o ficheiro existente não será substituído (ou seja, ignorado). |
select_partitions |
Adiciona um passo de transformação para selecionar a partição. |
show |
Obtém as primeiras linhas de contagem desta MLTable como um Dataframe do Pandas. |
skip |
Adiciona um passo de transformação para ignorar as primeiras linhas de contagem desta MLTable. |
take |
Adiciona um passo de transformação para selecionar as primeiras linhas de contagem desta MLTable. |
take_random_sample |
Adiciona um passo de transformação para selecionar aleatoriamente cada linha desta MLTable com probabilidade . A probabilidade tem de estar no intervalo [0, 1]. Opcionalmente, pode definir uma semente aleatória. |
to_pandas_dataframe |
Carregue todos os registos dos caminhos especificados no ficheiro MLTable para um DataFrame do Pandas. |
validate |
Valida se os dados desta MLTable podem ser carregados, requer que as origens de dados da MLTable estejam acessíveis a partir da computação atual. |
convert_column_types
Adiciona um passo de transformação para converter as colunas especificadas nos 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 da coluna: escreve o utilizador que pretende converter |
Devoluções
Tipo | Description |
---|---|
MLTable com passo de transformação adicionado |
drop_columns
Adiciona um passo de transformação para remover as colunas fornecidas do conjunto de dados. Se uma lista vazia, cadeia de identificação ou conjunto não receber nada é ignorado. As colunas duplicadas gerarão uma UserErrorException.
Tentar remover uma coluna MLTable.traits.timestamp_column ou em MLTable.traits.index_columns irá gerar uma UserErrorException.
drop_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parâmetros
Name | Description |
---|---|
columns
Necessário
|
coluna(s) a remover desta MLTable |
Devoluções
Tipo | Description |
---|---|
MLTable com passo de transformação adicionado |
extract_columns_from_partition_format
Adiciona um passo de transformação para utilizar as informações de partição de cada caminho e extraí-las em colunas com base no formato de partição especificado.
Formatar a parte '{column_name}' cria a coluna de cadeia e '{column_name:aaaa/MM/dd/HH/mm/ss}' cria a coluna datetime, em que 'aaaa', 'MM', 'dd', 'HH', 'mm' e 'ss' são utilizados 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é ao fim do caminho do ficheiro. Por exemplo, dado o caminho "/Accounts/2019/01/01/data.csv" em que a partição é por nome e hora do departamento, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' cria uma coluna de cadeia "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
|
Formato de partição a utilizar para extrair dados para colunas |
Devoluções
Tipo | Description |
---|---|
MLTable cujo formato de partição está definido para o formato fornecido |
filter
Filtre os dados, deixando apenas os registos 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 ao indexar a tabela com o nome de uma coluna. Suportam uma variedade de funções e operadores e podem ser combinados com operadores lógicos. A expressão resultante será avaliada preguiçosamente para cada registo quando ocorrer uma extração de dados e não onde é 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 esta MLTable.
get_partition_count() -> int
Devoluções
Tipo | Description |
---|---|
partições de dados nesta MLTable |
keep_columns
Adiciona um passo de transformação para manter as colunas especificadas e remover todas as outras do conjunto de dados. Se uma lista vazia, cadeia de identificação ou conjunto não receber nada é ignorado. As colunas duplicadas gerarão uma UserErrorException.
Se a coluna em MLTable.traits.timestamp_column ou colunas no MLTable.traits.index_columns não for explicitamente mantida, é efetuada uma raiesd userErrorException.
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
Parâmetros
Name | Description |
---|---|
columns
Necessário
|
colunas nesta MLTable a manter |
Devoluções
Tipo | Description |
---|---|
MLTable com passo de transformação adicionado |
random_split
Divide aleatoriamente esta MLTable em duas MLTables, uma com aproximadamente "percentagem"% dos dados originais da MLTable e a outra com o resto (1"%"%).
random_split(percent=0.5, seed=None)
Parâmetros
Name | Description |
---|---|
percent
Necessário
|
percentagem da MLTable a dividir entre |
seed
Necessário
|
semente aleatória opcional |
Devoluções
Tipo | Description |
---|---|
duas MLTables com os dados desta MLTable divididos entre as mesmas por "percentagem" |
save
Guarde esta MLTable como um ficheiro YAML de MLTable & os respetivos caminhos assóicos para o caminho de diretório especificado.
Se o caminho não for indicado, a predefinição é o diretório de trabalho atual. Se o caminho não existir, será criado. Se o caminho for remoto, o arquivo de dados subjacente já tem de existir. Se caminho for um diretório local & não for absoluto, torna-se absoluto.
Se o caminho apontar para um ficheiro, será gerado um UserErrorException. Se path for um caminho de diretório que já contenha um ou mais ficheiros guardados (incluindo o ficheiro YAML MLTable) e a substituição estiver definida como Falso ou "falha" – é criada uma UserErrorException. Se o caminho for remoto, todos os caminhos de ficheiros locais não fornecidos como um caminho colocalizado (caminho do ficheiro relativo ao diretório a partir do qual a MLTable foi carregada) gerarão uma UserErrorException.
colocalizado controla a forma como os caminhos associados são guardados no caminho. Se For Verdadeiro, os ficheiros são copiados para o caminho juntamente com o ficheiro YAML MLTable como caminhos de ficheiro relativos. Caso contrário, os ficheiros associados não são copiados, os caminhos remotos permanecem conforme indicado e os caminhos de ficheiro locais são tornados relativos com o redirecionamento de caminho, se necessário. Tenha em atenção que Falso pode resultar em ficheiros YAML de MLTable não a cores que não são recomendados, além disso, se o caminho for remoto, tal resultará numa UserErrorException, uma vez que o redirecionamento de caminho relativo não é suportado para URIs remotos.
Tenha em atenção que se a MLTable for criada programaticamente com métodos como from_paths() ou from_read_delimited_files() com caminhos relativos locais, assume-se que o caminho do diretório MLTable é o diretório de trabalho atual.
Tenha em atenção ao guardar um novo MLTable & ficheiros de dados associados a um diretório com um ficheiro MLTable existente & ficheiros de dados associados que o diretório não está limpo dos ficheiros existentes antes de guardar os novos ficheiros. É possível que os ficheiros de dados já existentes persistam depois de guardar os novos ficheiros, especialmente se os ficheiros de dados existentes não tiverem nomes que correspondam a novos ficheiros de dados. Se a nova MLTable contiver um designador de padrão nos respetivos caminhos, isto poderá alterar involuntariamente a MLTable ao associar ficheiros de dados existentes à nova MLTable.
Se os caminhos de ficheiro nesta MLTable apontarem para um ficheiro existente no caminho , mas tiverem um URI diferente, se a substituição for "falha" ou "ignorar" o ficheiro 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
|
caminho do diretório para o qual guardar, predefinição para o diretório de trabalho atual |
colocated
Necessário
|
Se for Verdadeiro, guarda cópias de caminhos de ficheiros remotos & locais nesta MLTable no caminho como caminhos relativos. Caso contrário, não ocorre nenhuma cópia de ficheiros e os caminhos de ficheiro remotos são guardados conforme indicado no ficheiro YAML de MLTable guardado e nos caminhos de ficheiros locais como caminhos de ficheiro relativos com redirecionamento de caminho. Se o caminho for remoto & esta MLTable contiver caminhos de ficheiro locais, será criada uma UserErrorException. |
overwrite
Necessário
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
Como é que um ficheiro YAML MLTable existente e os ficheiros associados que podem já existir no caminho são processados. As opções são "substituir" (ou Verdadeiro) para substituir quaisquer ficheiros existentes, "falhar" (ou Falso) para gerar um erro se já existir um ficheiro ou "ignorar" para deixar os ficheiros existentes tal como estão. Também pode definir com <xref:mltable.MLTableSaveOverwriteOptions>. |
show_progress
Necessário
|
apresenta o progresso da cópia para stdout |
if_err_remove_files
Necessário
|
se ocorrer algum erro durante a gravação, os ficheiros guardados com êxito serão removidos para tornar a operação atómica |
Devoluções
Tipo | Description |
---|---|
esta instância de MLTable |
select_partitions
Adiciona um passo de transformação para selecionar a partição.
select_partitions(partition_index_list)
Parâmetros
Name | Description |
---|---|
partition_index_list
Necessário
|
lista de índice de partições |
Devoluções
Tipo | Description |
---|---|
MLTable com o tamanho da partição atualizado |
Observações
O fragmento de código seguinte mostra como utilizar a API de select_partitions para partições selecionadas da MLTable fornecida.
partition_index_list = [1, 2]
mltable = mltable.select_partitions(partition_index_list)
show
Obtém as primeiras linhas de contagem desta MLTable como um Dataframe do Pandas.
show(count=20)
Parâmetros
Name | Description |
---|---|
count
Necessário
|
número de linhas da parte superior da tabela a selecionar |
Devoluções
Tipo | Description |
---|---|
<xref:Pandas> <xref:Dataframe>
|
primeira contagem de linhas da MLTable |
skip
Adiciona um passo de transformação para ignorar as primeiras linhas de contagem desta MLTable.
skip(count)
Parâmetros
Name | Description |
---|---|
count
Necessário
|
número de linhas a ignorar |
Devoluções
Tipo | Description |
---|---|
MLTable com passo de transformação adicionado |
take
Adiciona um passo de transformação para selecionar as primeiras linhas de contagem desta MLTable.
take(count=20)
Parâmetros
Name | Description |
---|---|
count
Necessário
|
número de linhas da parte superior da tabela a selecionar |
Devoluções
Tipo | Description |
---|---|
MLTable com passo de transformação "take" adicionado |
take_random_sample
Adiciona um passo de transformação para selecionar aleatoriamente cada linha desta MLTable com probabilidade . A probabilidade tem de 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 está selecionada |
seed
Necessário
|
semente aleatória opcional |
Devoluções
Tipo | Description |
---|---|
MLTable com passo de transformação adicionado |
to_pandas_dataframe
Carregue todos os registos dos caminhos especificados no ficheiro MLTable para um DataFrame do Pandas.
to_pandas_dataframe()
Devoluções
Tipo | Description |
---|---|
Dataframe do Pandas que contém os registos de caminhos nesta MLTable |
Observações
O fragmento de código seguinte mostra como utilizar a API de to_pandas_dataframe para obter um dataframe pandas correspondente à MLTable fornecida.
from mltable import load
tbl = load('.\samples\mltable_sample')
pdf = tbl.to_pandas_dataframe()
print(pdf.shape)
validate
Valida se os dados desta MLTable podem ser carregados, requer que as origens de dados da MLTable estejam acessíveis a partir da computação atual.
validate()
Devoluções
Tipo | Description |
---|---|
Nenhuma |
Atributos
partition_keys
paths
Devolve uma lista de dicionários que contêm os caminhos originais fornecidos a esta MLTable. Presume-se que os caminhos de ficheiros locais relativos são relativos ao diretório a partir do qual o ficheiro YAML da MLTable foi carregado.
Devoluções
Tipo | Description |
---|---|
lista de dicts que contêm caminhos especificados na MLTable |