Condividi tramite


MLTable Classe

Rappresenta una tabella MLTable.

Una tabella MLTable definisce una serie di operazioni non modificabili valutate in modo differito per caricare i dati dall'origine dati. I dati non vengono caricati dall'origine fino a quando non viene richiesto a MLTable di recapitare i dati.

Inizializzare una nuova tabella MLTable.

Questo costruttore non deve essere richiamato direttamente. MLTable deve essere creato con load.

Ereditarietà
builtins.object
MLTable

Costruttore

MLTable()

Metodi

convert_column_types

Aggiunge un passaggio di trasformazione per convertire le colonne specificate nei rispettivi nuovi tipi specificati.


   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

Aggiunge un passaggio di trasformazione per eliminare le colonne specificate dal set di dati. Se non viene eliminato un elenco vuoto, una tupla o un set. Le colonne duplicate generano un'eccezione UserErrorException.

Il tentativo di eliminare una colonna MLTable.traits.timestamp_column o in MLTable.traits.index_columns genererà un'eccezione UserErrorException.

extract_columns_from_partition_format

Aggiunge un passaggio di trasformazione per usare le informazioni di partizione di ogni percorso ed estrarle in colonne in base al formato di partizione specificato.

La parte di formato '{column_name}' crea una colonna stringa e '{column_name:y/MM/dd/HH/mm/ss}' crea una colonna datetime, dove 'y', 'MM', 'dd', 'HH', 'mm' e 'ss' vengono usati per estrarre anno, mese, giorno, ora e secondo per il tipo datetime.

Il formato deve iniziare dalla posizione della prima chiave di partizione fino alla fine del percorso del file. Ad esempio, dato il percorso '/Accounts/2019/01/01/data.csv' in cui la partizione è in base al nome e all'ora del reparto, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' crea una colonna stringa 'Department' con il valore 'Accounts' e una colonna datetime 'PartitionDate' con il valore '2019-01-01'.

filter

Filtrare i dati, lasciando solo i record corrispondenti all'espressione specificata.

get_partition_count

Restituisce il numero di partizioni di dati sottostanti ai dati associati a questa tabella MLTable.

keep_columns

Aggiunge un passaggio di trasformazione per mantenere le colonne specificate e eliminare tutte le altre dal set di dati. Se non viene eliminato un elenco vuoto, una tupla o un set. Le colonne duplicate generano un'eccezione UserErrorException.

Se la colonna in MLTable.traits.timestamp_column o colonne in MLTable.traits.index_columns non viene mantenuta in modo esplicito, un'eccezione UserErrorException viene raiesd.

random_split

Divide in modo casuale questa tabella MLTable in due tabelle MLTable, una che ha circa "percent"% dei dati di MLTable originali e l'altra con il resto (1-"percent"%).

save

Salvare mlTable come file YAML MLTable & i percorsi associati al percorso della directory specificato.

Se il percorso non è specificato, il valore predefinito è la directory di lavoro corrente. Se il percorso non esiste, viene creato. Se il percorso è remoto, l'archivio dati sottostante deve già esistere. Se il percorso è una directory locale & non è assoluto, viene reso assoluto.

Se il percorso punta a un file, viene generato un oggetto UserErrorException. Se il percorso è un percorso di directory che contiene già uno o più file salvati (incluso il file YAML MLTable) e la sovrascrittura è impostata su False o 'fail' : viene generata un'eccezione UserErrorException. Se il percorso è remoto, i percorsi dei file locali non specificati come percorso colocated (percorso file relativo alla directory da cui è stato caricato MLTable) genereranno un'eccezione UserErrorException.

colcated controlla la modalità di salvataggio dei percorsi associati nel percorso. Se True, i file vengono copiati nel percorso insieme al file YAML MLTable come percorsi di file relativi. In caso contrario i file associati non vengono copiati, i percorsi remoti rimangono come specificato e i percorsi di file locali vengono resi relativi con il reindirizzamento del percorso, se necessario. Si noti che False può comportare file YAML non in un formato mlcato che non è consigliabile, inoltre, se il percorso è remoto, questo comporta un'eccezione UserErrorException come reindirizzamento del percorso relativo non è supportato per gli URI remoti.

Si noti che se MLTable viene creato in modo programmatico con metodi come from_paths() o from_read_delimited_files() con percorsi relativi locali, si presuppone che il percorso della directory MLTable sia la directory di lavoro corrente.

Tenere presente quando si salva un nuovo file di dati MLTable & associato a una directory con un file MLTable esistente & file di dati associati che la directory non viene cancellata dai file esistenti prima di salvare i nuovi file. È possibile che i file di dati già esistenti vengano mantenuti dopo il salvataggio dei nuovi file, soprattutto se i file di dati esistenti non hanno nomi corrispondenti a nuovi file di dati. Se la nuova tabella MLTable contiene un designatore di modelli nei relativi percorsi, questo potrebbe non modificare in modo imprevisto mlTable associando i file di dati esistenti alla nuova tabella MLTable.

Se i percorsi dei file in questa tabella MLTable puntano a un file esistente nel percorso , ma hanno un URI diverso, se la sovrascrittura è "fail" o "skip" il file esistente non verrà sovrascritto (ad esempio ignorato).

select_partitions

Aggiunge un passaggio di trasformazione per selezionare la partizione.

show

Recupera le prime righe di conteggio di questa tabella MLTable come dataframe Pandas.

skip

Aggiunge un passaggio di trasformazione per ignorare le prime righe di conteggio di questa tabella MLTable.

take

Aggiunge un passaggio di trasformazione per selezionare le prime righe di conteggio di questa tabella MLTable.

take_random_sample

Aggiunge un passaggio di trasformazione per selezionare in modo casuale ogni riga di questa tabella MLTable con probabilità . La probabilità deve essere compreso nell'intervallo [0, 1]. Facoltativamente, è possibile impostare un seed casuale.

to_pandas_dataframe

Caricare tutti i record dai percorsi specificati nel file MLTable in un dataframe Pandas.

validate

Verifica se i dati di MLTable possono essere caricati, richiede che le origini dati di MLTable siano accessibili dal calcolo corrente.

convert_column_types

Aggiunge un passaggio di trasformazione per convertire le colonne specificate nei rispettivi nuovi tipi specificati.


   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)

Parametri

Nome Descrizione
column_types
Necessario

Dizionario di colonna: tipi il desiderio dell'utente di convertire

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

drop_columns

Aggiunge un passaggio di trasformazione per eliminare le colonne specificate dal set di dati. Se non viene eliminato un elenco vuoto, una tupla o un set. Le colonne duplicate generano un'eccezione UserErrorException.

Il tentativo di eliminare una colonna MLTable.traits.timestamp_column o in MLTable.traits.index_columns genererà un'eccezione UserErrorException.

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

Parametri

Nome Descrizione
columns
Necessario
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

colonne da eliminare da mlTable

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

extract_columns_from_partition_format

Aggiunge un passaggio di trasformazione per usare le informazioni di partizione di ogni percorso ed estrarle in colonne in base al formato di partizione specificato.

La parte di formato '{column_name}' crea una colonna stringa e '{column_name:y/MM/dd/HH/mm/ss}' crea una colonna datetime, dove 'y', 'MM', 'dd', 'HH', 'mm' e 'ss' vengono usati per estrarre anno, mese, giorno, ora e secondo per il tipo datetime.

Il formato deve iniziare dalla posizione della prima chiave di partizione fino alla fine del percorso del file. Ad esempio, dato il percorso '/Accounts/2019/01/01/data.csv' in cui la partizione è in base al nome e all'ora del reparto, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' crea una colonna stringa 'Department' con il valore 'Accounts' e una colonna datetime 'PartitionDate' con il valore '2019-01-01'.

extract_columns_from_partition_format(partition_format)

Parametri

Nome Descrizione
partition_format
Necessario
str

Formato di partizione da usare per estrarre dati in colonne

Restituisce

Tipo Descrizione

MLTable il cui formato di partizione è impostato sul formato specificato

filter

Filtrare i dati, lasciando solo i record corrispondenti all'espressione specificata.

filter(expression)

Parametri

Nome Descrizione
expression
Necessario

Espressione da valutare.

Restituisce

Tipo Descrizione

MLTable dopo il filtro

Commenti

Le espressioni vengono avviate indicizzando la tabella mltable con il nome di una colonna. Supportano un'ampia gamma di funzioni e operatori e possono essere combinati usando operatori logici. L'espressione risultante verrà valutata in modo più pigre per ogni record quando si verifica un pull di dati e non la posizione in cui è definita.


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

get_partition_count

Restituisce il numero di partizioni di dati sottostanti ai dati associati a questa tabella MLTable.

get_partition_count() -> int

Restituisce

Tipo Descrizione
int

partizioni di dati in questa tabella MLTable

keep_columns

Aggiunge un passaggio di trasformazione per mantenere le colonne specificate e eliminare tutte le altre dal set di dati. Se non viene eliminato un elenco vuoto, una tupla o un set. Le colonne duplicate generano un'eccezione UserErrorException.

Se la colonna in MLTable.traits.timestamp_column o colonne in MLTable.traits.index_columns non viene mantenuta in modo esplicito, un'eccezione UserErrorException viene raiesd.

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

Parametri

Nome Descrizione
columns
Necessario
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

colonne in questa tabella MLTable da mantenere

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

random_split

Divide in modo casuale questa tabella MLTable in due tabelle MLTable, una che ha circa "percent"% dei dati di MLTable originali e l'altra con il resto (1-"percent"%).

random_split(percent=0.5, seed=None)

Parametri

Nome Descrizione
percent
Necessario

percentuale di MLTable da dividere tra

seed
Necessario

inizializzazione casuale facoltativa

Restituisce

Tipo Descrizione

due mlTable con i dati di MLTable suddivisi tra di essi per "percent"

save

Salvare mlTable come file YAML MLTable & i percorsi associati al percorso della directory specificato.

Se il percorso non è specificato, il valore predefinito è la directory di lavoro corrente. Se il percorso non esiste, viene creato. Se il percorso è remoto, l'archivio dati sottostante deve già esistere. Se il percorso è una directory locale & non è assoluto, viene reso assoluto.

Se il percorso punta a un file, viene generato un oggetto UserErrorException. Se il percorso è un percorso di directory che contiene già uno o più file salvati (incluso il file YAML MLTable) e la sovrascrittura è impostata su False o 'fail' : viene generata un'eccezione UserErrorException. Se il percorso è remoto, i percorsi dei file locali non specificati come percorso colocated (percorso file relativo alla directory da cui è stato caricato MLTable) genereranno un'eccezione UserErrorException.

colcated controlla la modalità di salvataggio dei percorsi associati nel percorso. Se True, i file vengono copiati nel percorso insieme al file YAML MLTable come percorsi di file relativi. In caso contrario i file associati non vengono copiati, i percorsi remoti rimangono come specificato e i percorsi di file locali vengono resi relativi con il reindirizzamento del percorso, se necessario. Si noti che False può comportare file YAML non in un formato mlcato che non è consigliabile, inoltre, se il percorso è remoto, questo comporta un'eccezione UserErrorException come reindirizzamento del percorso relativo non è supportato per gli URI remoti.

Si noti che se MLTable viene creato in modo programmatico con metodi come from_paths() o from_read_delimited_files() con percorsi relativi locali, si presuppone che il percorso della directory MLTable sia la directory di lavoro corrente.

Tenere presente quando si salva un nuovo file di dati MLTable & associato a una directory con un file MLTable esistente & file di dati associati che la directory non viene cancellata dai file esistenti prima di salvare i nuovi file. È possibile che i file di dati già esistenti vengano mantenuti dopo il salvataggio dei nuovi file, soprattutto se i file di dati esistenti non hanno nomi corrispondenti a nuovi file di dati. Se la nuova tabella MLTable contiene un designatore di modelli nei relativi percorsi, questo potrebbe non modificare in modo imprevisto mlTable associando i file di dati esistenti alla nuova tabella MLTable.

Se i percorsi dei file in questa tabella MLTable puntano a un file esistente nel percorso , ma hanno un URI diverso, se la sovrascrittura è "fail" o "skip" il file esistente non verrà sovrascritto (ad esempio ignorato).

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

Parametri

Nome Descrizione
path
Necessario
str

percorso directory da salvare in, impostazione predefinita per la directory di lavoro corrente

colocated
Necessario

Se True, salva copie di percorsi di file locali & remoti in questa tabella MLTable come percorsi relativi. In caso contrario, non si verifica alcuna copia di file e i percorsi di file remoti vengono salvati come specificato nel file YAML di MLTable salvato e nei percorsi di file locali come percorsi di file relativi con reindirizzamento del percorso. Se il percorso è remoto & questa tabella MLTable contiene percorsi di file locali, verrà generata un'eccezione UserErrorException.

overwrite
Necessario
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]

Come vengono gestiti i file YAML mltable esistenti e i file associati che possono già esistere nel percorso . Le opzioni sono "sovrascrivere" (o True) per sostituire eventuali file esistenti, "fail" (o False) per generare un errore se esiste già un file o "skip" per lasciare i file esistenti così come è. Può anche essere impostato con <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Necessario

visualizza lo stato di avanzamento della copia in stdout

if_err_remove_files
Necessario

se si verifica un errore durante il salvataggio, è stato rimosso qualsiasi file salvato correttamente per rendere l'operazione atomica

Restituisce

Tipo Descrizione

questa istanza di MLTable

select_partitions

Aggiunge un passaggio di trasformazione per selezionare la partizione.

select_partitions(partition_index_list)

Parametri

Nome Descrizione
partition_index_list
Necessario
list of int

elenco dell'indice di partizione

Restituisce

Tipo Descrizione

MLTable con dimensioni della partizione aggiornate

Commenti

Il frammento di codice seguente illustra come usare l'API select_partitions per le partizioni selezionate dalla tabella MLTable specificata.


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

show

Recupera le prime righe di conteggio di questa tabella MLTable come dataframe Pandas.

show(count=20)

Parametri

Nome Descrizione
count
Necessario
int

numero di righe dalla parte superiore della tabella da selezionare

Restituisce

Tipo Descrizione
<xref:Pandas> <xref:Dataframe>

prima conteggio delle righe di MLTable

skip

Aggiunge un passaggio di trasformazione per ignorare le prime righe di conteggio di questa tabella MLTable.

skip(count)

Parametri

Nome Descrizione
count
Necessario
int

numero di righe da ignorare

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

take

Aggiunge un passaggio di trasformazione per selezionare le prime righe di conteggio di questa tabella MLTable.

take(count=20)

Parametri

Nome Descrizione
count
Necessario
int

numero di righe dalla parte superiore della tabella da selezionare

Restituisce

Tipo Descrizione

MlTable con il passaggio di trasformazione "take" aggiunto

take_random_sample

Aggiunge un passaggio di trasformazione per selezionare in modo casuale ogni riga di questa tabella MLTable con probabilità . La probabilità deve essere compreso nell'intervallo [0, 1]. Facoltativamente, è possibile impostare un seed casuale.

take_random_sample(probability, seed=None)

Parametri

Nome Descrizione
probability
Necessario

probabilità che ogni riga sia selezionata

seed
Necessario

inizializzazione casuale facoltativa

Restituisce

Tipo Descrizione

MLTable con passaggio di trasformazione aggiunto

to_pandas_dataframe

Caricare tutti i record dai percorsi specificati nel file MLTable in un dataframe Pandas.

to_pandas_dataframe()

Restituisce

Tipo Descrizione

Dataframe Pandas contenente i record dai percorsi in questa tabella MLTable

Commenti

Il frammento di codice seguente illustra come usare l'API to_pandas_dataframe per ottenere un dataframe pandas corrispondente all'oggetto MLTable fornito.


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

validate

Verifica se i dati di MLTable possono essere caricati, richiede che le origini dati di MLTable siano accessibili dal calcolo corrente.

validate()

Restituisce

Tipo Descrizione

Nessuno

Attributi

partition_keys

Restituire le chiavi di partizione.

Restituisce

Tipo Descrizione

chiavi di partizione

paths

Restituisce un elenco di dizionari contenenti i percorsi originali specificati in questa tabella MLTable. Si presuppone che i percorsi di file locali relativi siano relativi alla directory da cui è stato caricato il file YAML MLTable da cui è stata caricata l'istanza di MLTable.

Restituisce

Tipo Descrizione

elenco dict contenenti percorsi specificati in MLTable