MLTable Klas

Vertegenwoordigt een MLTable.

Een MLTable definieert een reeks vertraagd geëvalueerde, onveranderbare bewerkingen voor het laden van gegevens uit de gegevensbron. Gegevens worden pas vanuit de bron geladen als MLTable wordt gevraagd om gegevens te leveren.

Initialiseer een nieuwe MLTable.

Deze constructor mag niet rechtstreeks worden aangeroepen. MLTable is bedoeld om te worden gemaakt met behulp van load.

Overname
builtins.object
MLTable

Constructor

MLTable()

Methoden

convert_column_types

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te converteren naar hun respectieve opgegeven nieuwe typen.


   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

Voegt een transformatiestap toe om de opgegeven kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.

Als u probeert een kolom te verwijderen die zich MLTable.traits.timestamp_column of in MLTable.traits.index_columns bevindt, wordt een UserErrorException weergegeven.

extract_columns_from_partition_format

Voegt een transformatiestap toe om de partitiegegevens van elk pad te gebruiken en deze uit te pakken in kolommen op basis van de opgegeven partitieindeling.

Met het opmaakonderdeel {column_name} wordt een tekenreekskolom gemaakt en met {column_name:yyyy/MM/dd/HH/mm/ss} wordt de datum/tijdkolom gemaakt, waarbij 'jjjj', 'MM', 'dd', 'uu', 'mm' en 'ss' worden gebruikt om jaar, maand, dag, uur, minuut en seconde te extraheren voor het datum/tijd-type.

De indeling moet beginnen vanaf de positie van de eerste partitiesleutel tot het einde van het bestandspad. Bijvoorbeeld, gezien het pad '/Accounts/2019/01/01/data.csv' waarbij de partitie zich bevindt op afdelingsnaam en -tijd, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' wordt een tekenreekskolom 'Afdeling' gemaakt met de waarde 'Accounts' en een datum/tijd-kolom 'PartitionDate' met de waarde '2019-01-01'.

filter

Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie.

get_partition_count

Retourneert het aantal gegevenspartities dat ten grondslag komt aan de gegevens die zijn gekoppeld aan deze MLTable.

keep_columns

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te behouden en alle andere kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.

Als de kolom in MLTable.traits.timestamp_column of kolommen in MLTable.traits.index_columns niet expliciet worden bewaard, is een UserErrorException niet beschikbaar.

random_split

Deze MLTable wordt willekeurig gesplitst in twee MLTables, waarbij één met ongeveer 'procent'% van de oorspronkelijke MLTable-gegevens en de andere met de rest (1-"percent"%).

save

Sla deze MLTable op als een MLTable YAML-bestand & de bijbehorende paden naar het opgegeven mappad.

Als het pad niet is opgegeven, wordt standaard ingesteld op de huidige werkmap. Als het pad niet bestaat, wordt het gemaakt. Als het pad extern is, moet het onderliggende gegevensarchief al bestaan. Als pad een lokale map is & niet absoluut is, wordt het absoluut gemaakt.

Als het pad naar een bestand verwijst, wordt er een UserErrorException gegenereerd. Als pad een mappad is dat al een of meer bestanden bevat die worden opgeslagen (inclusief het MLTable YAML-bestand) en overschrijven is ingesteld op False of 'fail', wordt er een UserErrorException gegenereerd. Als het pad extern is, wordt voor alle lokale bestandspaden die niet zijn opgegeven als een colocatiepad (bestandspad ten opzichte van de map waaruit MLTable is geladen) een UserErrorException weergegeven.

Met colocated bepaalt u hoe gekoppelde paden worden opgeslagen in het pad. Als waar is, worden bestanden naar het pad gekopieerd naast het YAML-bestand MLTable als relatieve bestandspaden. Anders worden gekoppelde bestanden niet gekopieerd, blijven externe paden zoals opgegeven en worden lokale bestandspaden relatief gemaakt met padomleiding, indien nodig. Houd er rekening mee dat Onwaar kan leiden tot niet-cocated MLTable YAML-bestanden, wat niet wordt aanbevolen. Als het pad extern is, resulteert dit in een UserErrorException omdat relatieve padomleiding niet wordt ondersteund voor externe URI's.

Als de MLTable programmatisch wordt gemaakt met methoden zoals from_paths() of from_read_delimited_files() met lokale relatieve paden, wordt ervan uitgegaan dat het pad naar de MLTable-map de huidige werkmap is.

Let bij het opslaan van een nieuwe MLTable & gekoppelde gegevensbestanden in een map met een bestaand MLTable-bestand & gekoppelde gegevensbestanden dat de map niet wordt gewist van bestaande bestanden voordat de nieuwe bestanden worden opgeslagen. Het is mogelijk dat bestaande gegevensbestanden behouden blijven nadat de nieuwe bestanden zijn opgeslagen, met name als bestaande gegevensbestanden geen namen hebben die overeenkomen met nieuwe gegevensbestanden. Als de nieuwe MLTable een patroonontwerpfunctie onder de paden bevat, kan dit onbedoeld de MLTable wijzigen door bestaande gegevensbestanden te koppelen aan de nieuwe MLTable.

Als bestandspaden in deze MLTable naar een bestaand bestand in pad verwijzen, maar een andere URI hebben, wordt het bestaande bestand niet overschreven (dat wil zeggen overgeslagen) als overschrijven mislukt of overslaan is.

select_partitions

Voegt een transformatiestap toe om de partitie te selecteren.

show

Haalt de eerste aantal rijen van deze MLTable op als een Pandas-gegevensframe.

skip

Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable over te slaan.

take

Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable te selecteren.

take_random_sample

Hiermee voegt u een transformatiestap toe om elke rij van deze MLTable willekeurig te selecteren met waarschijnlijkheidskans . De kans moet binnen het bereik [0, 1] liggen. Kan eventueel een willekeurig zaadje instellen.

to_pandas_dataframe

Laad alle records van de paden die zijn opgegeven in het MLTable-bestand in een Pandas DataFrame.

validate

Valideert of de gegevens van deze MLTable kunnen worden geladen, vereist dat de gegevensbron(s) van MLTable toegankelijk zijn vanuit de huidige berekening.

convert_column_types

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te converteren naar hun respectieve opgegeven nieuwe typen.


   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)

Parameters

Name Description
column_types
Vereist

Woordenlijst van kolom: typen die de gebruiker wil converteren

Retouren

Type Description

MLTable met toegevoegde transformatiestap

drop_columns

Voegt een transformatiestap toe om de opgegeven kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.

Als u probeert een kolom te verwijderen die zich MLTable.traits.timestamp_column of in MLTable.traits.index_columns bevindt, wordt een UserErrorException weergegeven.

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

Parameters

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

kolom(en) om uit deze MLTabel te verwijderen

Retouren

Type Description

MLTable met toegevoegde transformatiestap

extract_columns_from_partition_format

Voegt een transformatiestap toe om de partitiegegevens van elk pad te gebruiken en deze uit te pakken in kolommen op basis van de opgegeven partitieindeling.

Met het opmaakonderdeel {column_name} wordt een tekenreekskolom gemaakt en met {column_name:yyyy/MM/dd/HH/mm/ss} wordt de datum/tijdkolom gemaakt, waarbij 'jjjj', 'MM', 'dd', 'uu', 'mm' en 'ss' worden gebruikt om jaar, maand, dag, uur, minuut en seconde te extraheren voor het datum/tijd-type.

De indeling moet beginnen vanaf de positie van de eerste partitiesleutel tot het einde van het bestandspad. Bijvoorbeeld, gezien het pad '/Accounts/2019/01/01/data.csv' waarbij de partitie zich bevindt op afdelingsnaam en -tijd, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' wordt een tekenreekskolom 'Afdeling' gemaakt met de waarde 'Accounts' en een datum/tijd-kolom 'PartitionDate' met de waarde '2019-01-01'.

extract_columns_from_partition_format(partition_format)

Parameters

Name Description
partition_format
Vereist
str

Partitieindeling voor het extraheren van gegevens in kolommen

Retouren

Type Description

MLTable waarvan de partitie-indeling is ingesteld op de opgegeven indeling

filter

Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie.

filter(expression)

Parameters

Name Description
expression
Vereist

De expressie die moet worden geëvalueerd.

Retouren

Type Description

MLTable na filter

Opmerkingen

Expressies worden gestart door de mltable te indexeren met de naam van een kolom. Ze ondersteunen verschillende functies en operators en kunnen worden gecombineerd met behulp van logische operators. De resulterende expressie wordt lui geëvalueerd voor elke record wanneer een gegevens pull plaatsvindt en niet waar deze is gedefinieerd.


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

get_partition_count

Retourneert het aantal gegevenspartities dat ten grondslag komt aan de gegevens die zijn gekoppeld aan deze MLTable.

get_partition_count() -> int

Retouren

Type Description
int

gegevenspartities in deze MLTable

keep_columns

Hiermee voegt u een transformatiestap toe om de opgegeven kolommen te behouden en alle andere kolommen uit de gegevensset te verwijderen. Als een lege lijst, tuple of set wordt gegeven, wordt er niets verwijderd. Dubbele kolommen genereren een UserErrorException.

Als de kolom in MLTable.traits.timestamp_column of kolommen in MLTable.traits.index_columns niet expliciet worden bewaard, is een UserErrorException niet beschikbaar.

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

Parameters

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

kolommen in deze MLTabel om te bewaren

Retouren

Type Description

MLTable met toegevoegde transformatiestap

random_split

Deze MLTable wordt willekeurig gesplitst in twee MLTables, waarbij één met ongeveer 'procent'% van de oorspronkelijke MLTable-gegevens en de andere met de rest (1-"percent"%).

random_split(percent=0.5, seed=None)

Parameters

Name Description
percent
Vereist

percentage van de MLTable om tussen te splitsen

seed
Vereist

optioneel willekeurig zaad

Retouren

Type Description

twee MLTables met de gegevens van deze MLTable tussen hen gesplitst door 'percent'

save

Sla deze MLTable op als een MLTable YAML-bestand & de bijbehorende paden naar het opgegeven mappad.

Als het pad niet is opgegeven, wordt standaard ingesteld op de huidige werkmap. Als het pad niet bestaat, wordt het gemaakt. Als het pad extern is, moet het onderliggende gegevensarchief al bestaan. Als pad een lokale map is & niet absoluut is, wordt het absoluut gemaakt.

Als het pad naar een bestand verwijst, wordt er een UserErrorException gegenereerd. Als pad een mappad is dat al een of meer bestanden bevat die worden opgeslagen (inclusief het MLTable YAML-bestand) en overschrijven is ingesteld op False of 'fail', wordt er een UserErrorException gegenereerd. Als het pad extern is, wordt voor alle lokale bestandspaden die niet zijn opgegeven als een colocatiepad (bestandspad ten opzichte van de map waaruit MLTable is geladen) een UserErrorException weergegeven.

Met colocated bepaalt u hoe gekoppelde paden worden opgeslagen in het pad. Als waar is, worden bestanden naar het pad gekopieerd naast het YAML-bestand MLTable als relatieve bestandspaden. Anders worden gekoppelde bestanden niet gekopieerd, blijven externe paden zoals opgegeven en worden lokale bestandspaden relatief gemaakt met padomleiding, indien nodig. Houd er rekening mee dat Onwaar kan leiden tot niet-cocated MLTable YAML-bestanden, wat niet wordt aanbevolen. Als het pad extern is, resulteert dit in een UserErrorException omdat relatieve padomleiding niet wordt ondersteund voor externe URI's.

Als de MLTable programmatisch wordt gemaakt met methoden zoals from_paths() of from_read_delimited_files() met lokale relatieve paden, wordt ervan uitgegaan dat het pad naar de MLTable-map de huidige werkmap is.

Let bij het opslaan van een nieuwe MLTable & gekoppelde gegevensbestanden in een map met een bestaand MLTable-bestand & gekoppelde gegevensbestanden dat de map niet wordt gewist van bestaande bestanden voordat de nieuwe bestanden worden opgeslagen. Het is mogelijk dat bestaande gegevensbestanden behouden blijven nadat de nieuwe bestanden zijn opgeslagen, met name als bestaande gegevensbestanden geen namen hebben die overeenkomen met nieuwe gegevensbestanden. Als de nieuwe MLTable een patroonontwerpfunctie onder de paden bevat, kan dit onbedoeld de MLTable wijzigen door bestaande gegevensbestanden te koppelen aan de nieuwe MLTable.

Als bestandspaden in deze MLTable naar een bestaand bestand in pad verwijzen, maar een andere URI hebben, wordt het bestaande bestand niet overschreven (dat wil zeggen overgeslagen) als overschrijven mislukt of overslaan is.

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

Parameters

Name Description
path
Vereist
str

mappad om op te slaan in, standaard ingesteld op huidige werkmap

colocated
Vereist

Indien waar slaat u kopieën van lokale & externe bestandspaden in deze MLTable onder pad op als relatieve paden. Anders wordt er geen bestand gekopieerd en worden externe bestandspaden opgeslagen zoals opgegeven voor het opgeslagen MLTable YAML-bestand en lokale bestandspaden als relatieve bestandspaden met padomleiding. Als het pad extern is & deze MLTable lokale bestandspaden bevat, wordt een UserErrorException gegenereerd.

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

Hoe een bestaand MLTable YAML-bestand en de bijbehorende bestanden die mogelijk al onder het pad bestaan, worden verwerkt. Opties zijn 'overwrite' (of True) om bestaande bestanden te vervangen, 'mislukt' (of onwaar) om een fout te genereren als een bestand al bestaat, of 'overslaan' om bestaande bestanden te laten zoals ze zijn. Kan ook worden ingesteld met <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Vereist

geeft de voortgang van het kopiëren naar stdout weer

if_err_remove_files
Vereist

als er een fout optreedt tijdens het opslaan, zijn alle opgeslagen bestanden verwijderd om de bewerking atomisch te maken

Retouren

Type Description

dit MLTable-exemplaar

select_partitions

Voegt een transformatiestap toe om de partitie te selecteren.

select_partitions(partition_index_list)

Parameters

Name Description
partition_index_list
Vereist
list of int

lijst met partitie-index

Retouren

Type Description

MLTable met partitiegrootte bijgewerkt

Opmerkingen

In het volgende codefragment ziet u hoe u de select_partitions-API gebruikt voor geselecteerde partities uit de opgegeven MLTable.


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

show

Haalt de eerste aantal rijen van deze MLTable op als een Pandas-gegevensframe.

show(count=20)

Parameters

Name Description
count
Vereist
int

aantal rijen vanaf het begin van de tabel om te selecteren

Retouren

Type Description
<xref:Pandas> <xref:Dataframe>

eerste aantal rijen van de MLTable

skip

Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable over te slaan.

skip(count)

Parameters

Name Description
count
Vereist
int

aantal rijen om over te slaan

Retouren

Type Description

MLTable met toegevoegde transformatiestap

take

Voegt een transformatiestap toe om de eerste tellingsrijen van deze MLTable te selecteren.

take(count=20)

Parameters

Name Description
count
Vereist
int

aantal rijen vanaf het begin van de tabel om te selecteren

Retouren

Type Description

MLTable met toegevoegde 'take'-transformatiestap

take_random_sample

Hiermee voegt u een transformatiestap toe om elke rij van deze MLTable willekeurig te selecteren met waarschijnlijkheidskans . De kans moet binnen het bereik [0, 1] liggen. Kan eventueel een willekeurig zaadje instellen.

take_random_sample(probability, seed=None)

Parameters

Name Description
probability
Vereist

kans dat elke rij is geselecteerd

seed
Vereist

optioneel willekeurig zaad

Retouren

Type Description

MLTable met toegevoegde transformatiestap

to_pandas_dataframe

Laad alle records van de paden die zijn opgegeven in het MLTable-bestand in een Pandas DataFrame.

to_pandas_dataframe()

Retouren

Type Description

Pandas-gegevensframe met de records van paden in deze MLTable

Opmerkingen

Het volgende codefragment laat zien hoe u de to_pandas_dataframe API gebruikt om een Pandas-dataframe te verkrijgen dat overeenkomt met de opgegeven MLTable.


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

validate

Valideert of de gegevens van deze MLTable kunnen worden geladen, vereist dat de gegevensbron(s) van MLTable toegankelijk zijn vanuit de huidige berekening.

validate()

Retouren

Type Description

Geen

Kenmerken

partition_keys

Retourneer de partitiesleutels.

Retouren

Type Description

de partitiesleutels

paths

Retourneert een lijst met woordenlijsten met de oorspronkelijke paden die aan deze MLTable zijn opgegeven. Relatieve lokale bestandspaden worden verondersteld relatief te zijn ten opzichte van de map waaruit het MLTable YAML-bestand dit MLTable-exemplaar is geladen.

Retouren

Type Description

lijst met dicteren die paden bevatten die zijn opgegeven in de MLTable