MLTable Klasse

Stellt eine MLTable dar.

Eine MLTable definiert eine Reihe von lazily ausgewerteten, unveränderlichen Vorgängen zum Laden von Daten aus der Datenquelle. Daten werden erst aus der Quelle geladen, wenn MLTable aufgefordert wird, Daten zu übermitteln.

Initialisieren Sie eine neue MLTable.

Dieser Konstruktor sollte nicht direkt aufgerufen werden. MLTable soll mit loaderstellt werden.

Vererbung
builtins.object
MLTable

Konstruktor

MLTable()

Methoden

convert_column_types

Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten in die jeweils angegebenen neuen Typen zu konvertieren.


   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

Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten aus dem Dataset zu löschen. Wenn eine leere Liste, ein Tupel oder eine leere Menge angegeben wird, wird nichts gelöscht. Doppelte Spalten lösen eine UserErrorException aus.

Wenn Sie versuchen, eine Spalte zu löschen, die MLTable.traits.timestamp_column oder in MLTable.traits.index_columns ist, wird eine UserErrorException ausgelöst.

extract_columns_from_partition_format

Fügt einen Transformationsschritt hinzu, um die Partitionsinformationen jedes Pfads zu verwenden und sie basierend auf dem angegebenen Partitionsformat in Spalten zu extrahieren.

Mit dem Formatteil „{column_name}“ wird eine Zeichenfolgenspalte erstellt, und „{column_name:yyyyyy/MM/dd/HH/mm/ss}“ erstellt eine datetime-Spalte, wobei „yyyy“, „MM“, „dd“, „HH“, „mm“ und „ss“ verwendet werden, um Jahr, Monat, Tag, Stunde, Minute und Sekunde für den datetime-Typ zu extrahieren.

Das Format muss an der Position des ersten Partitionsschlüssels beginnen und bis zum Ende des Dateipfads reichen. Beispiel: In Anbetracht des Pfads "/Accounts/2019/01/01/data.csv", bei dem die Partition nach Abteilungsname und -uhrzeit angegeben ist, partition_format='/{Department}/{PartitionDate:yyyy/MM/tt}/data.csv" erstellt eine Zeichenfolgenspalte "Department" mit dem Wert "Accounts" und eine datetime-Spalte "PartitionDate" mit dem Wert "2019-01-01".

filter

Filtern Sie die Daten, und lassen Sie nur die Datensätze zurück, die mit dem angegebenen Ausdruck übereinstimmen.

get_partition_count

Gibt die Anzahl der Datenpartitionen zurück, die den Daten zugrunde liegen, die dieser MLTable zugeordnet sind.

keep_columns

Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten beizubehalten und alle anderen aus dem Dataset zu löschen. Wenn eine leere Liste, ein Tupel oder eine leere Menge angegeben wird, wird nichts gelöscht. Doppelte Spalten lösen eine UserErrorException aus.

Wenn Spalten in MLTable.traits.timestamp_column oder Spalten in MLTable.traits.index_columns nicht explizit beibehalten werden, wird eine UserErrorException erstellt.

random_split

Teilt diese MLTable nach dem Zufallsprinzip in zwei MLTables auf, von denen eine etwa "Prozent" % der ursprünglichen MLTable-Daten und die andere den Rest (1-"Prozent") aufweist.

save

Speichern Sie diese MLTable als MLTable-YAML-Datei & den zugeordneten Pfaden zum angegebenen Verzeichnispfad.

Wenn kein Pfad angegeben wird, wird standardmäßig das aktuelle Arbeitsverzeichnis verwendet. Wenn der Pfad nicht vorhanden ist, wird er erstellt. Wenn der Pfad remote ist, muss der zugrunde liegende Datenspeicher bereits vorhanden sein. Wenn path ein lokales Verzeichnis ist& nicht absolut ist, wird er als absolut festgelegt.

Wenn der Pfad auf eine Datei verweist, wird eine UserErrorException ausgelöst. Wenn path ein Verzeichnispfad ist, der bereits eine oder mehrere gespeicherte Dateien enthält (einschließlich der MLTable-YAML-Datei), und das Überschreiben auf False oder "fail" festgelegt ist, wird eine UserErrorException ausgelöst. Wenn pfad remote ist, lösen alle lokalen Dateipfade, die nicht als gemeinsam zugeordneten Pfad angegeben sind (Dateipfad relativ zum Verzeichnis, aus dem MLTable geladen wurde) eine UserErrorException aus.

Die gemeinsame Zuordnung steuert, wie zugeordnete Pfade im Pfad gespeichert werden. Bei True werden Dateien zusammen mit der MLTable-YAML-Datei als relative Dateipfade in den Pfad kopiert. Andernfalls werden zugeordnete Dateien nicht kopiert, Remotepfade bleiben wie angegeben, und lokale Dateipfade werden bei Bedarf mit Pfadumleitung relativiert. Beachten Sie, dass False zu nicht kolonierten MLTable-YAML-Dateien führen kann, was nicht empfohlen wird. Wenn der Pfad remote ist, führt dies zu einer UserErrorException, da die relative Pfadumleitung für Remote-URIs nicht unterstützt wird.

Wenn die MLTable programmgesteuert mit Methoden wie from_paths() oder from_read_delimited_files() mit lokalen relativen Pfaden erstellt wird, wird davon ausgegangen, dass der MLTable-Verzeichnispfad das aktuelle Arbeitsverzeichnis ist.

Achten Sie beim Speichern einer neuen MLTable & zugeordneten Datendateien in einem Verzeichnis mit einer vorhandenen MLTable-Datei & zugeordneten Datendateien darauf, dass das Verzeichnis vor dem Speichern der neuen Dateien nicht von vorhandenen Dateien gelöscht wird. Es ist möglich, dass bereits vorhandene Datendateien nach dem Speichern der neuen Dateien beibehalten werden, insbesondere wenn vorhandene Datendateien keine Namen haben, die mit neuen Datendateien übereinstimmen. Wenn die neue MLTable einen Musterbezeichner unter ihren Pfaden enthält, kann dies unbeabsichtigt die MLTable ändern, indem vorhandene Datendateien der neuen MLTable zugeordnet werden.

Wenn Dateipfade in dieser MLTable auf eine vorhandene Datei im Pfad verweisen, aber einen anderen URI aufweisen, wird die vorhandene Datei nicht überschrieben (d. h. übersprungen).

select_partitions

Fügt einen Transformationsschritt hinzu, um die Partition auszuwählen.

show

Ruft die ersten Anzahlzeilen dieser MLTable als Pandas-Dataframe ab.

skip

Fügt einen Transformationsschritt hinzu, um die ersten Zählungszeilen dieser MLTable zu überspringen.

take

Fügt einen Transformationsschritt hinzu, um die ersten Anzahlzeilen dieser MLTable auszuwählen.

take_random_sample

Fügt einen Transformationsschritt hinzu, um jede Zeile dieser MLTable mit Wahrscheinlichkeit zufällig auszuwählen. Die Wahrscheinlichkeit muss im Bereich [0, 1] liegen. Kann optional einen zufälligen Seed festlegen.

to_pandas_dataframe

Laden Sie alle Datensätze aus den in der MLTable-Datei angegebenen Pfaden in einen Pandas-DataFrame.

validate

Überprüft, ob die Daten dieser MLTable geladen werden können, und erfordert, dass auf die Datenquelle(en) der MLTable von der aktuellen Compute aus zugegriffen werden kann.

convert_column_types

Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten in die jeweils angegebenen neuen Typen zu konvertieren.


   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)

Parameter

column_types
dict[Union[Tuple[str], str], DataType]
Erforderlich

Wörterbuch der Spalte: Typen, die der Benutzer konvertieren möchte

Gibt zurück

MLTable mit hinzugefügtem Transformationsschritt

Rückgabetyp

drop_columns

Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten aus dem Dataset zu löschen. Wenn eine leere Liste, ein Tupel oder eine leere Menge angegeben wird, wird nichts gelöscht. Doppelte Spalten lösen eine UserErrorException aus.

Wenn Sie versuchen, eine Spalte zu löschen, die MLTable.traits.timestamp_column oder in MLTable.traits.index_columns ist, wird eine UserErrorException ausgelöst.

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

Parameter

columns
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]
Erforderlich

Spalten, die aus dieser MLTable gelöscht werden sollen

Gibt zurück

MLTable mit hinzugefügtem Transformationsschritt

Rückgabetyp

extract_columns_from_partition_format

Fügt einen Transformationsschritt hinzu, um die Partitionsinformationen jedes Pfads zu verwenden und sie basierend auf dem angegebenen Partitionsformat in Spalten zu extrahieren.

Mit dem Formatteil „{column_name}“ wird eine Zeichenfolgenspalte erstellt, und „{column_name:yyyyyy/MM/dd/HH/mm/ss}“ erstellt eine datetime-Spalte, wobei „yyyy“, „MM“, „dd“, „HH“, „mm“ und „ss“ verwendet werden, um Jahr, Monat, Tag, Stunde, Minute und Sekunde für den datetime-Typ zu extrahieren.

Das Format muss an der Position des ersten Partitionsschlüssels beginnen und bis zum Ende des Dateipfads reichen. Beispiel: In Anbetracht des Pfads "/Accounts/2019/01/01/data.csv", bei dem die Partition nach Abteilungsname und -uhrzeit angegeben ist, partition_format='/{Department}/{PartitionDate:yyyy/MM/tt}/data.csv" erstellt eine Zeichenfolgenspalte "Department" mit dem Wert "Accounts" und eine datetime-Spalte "PartitionDate" mit dem Wert "2019-01-01".

extract_columns_from_partition_format(partition_format)

Parameter

partition_format
str
Erforderlich

Partitionsformat zum Extrahieren von Daten in Spalten

Gibt zurück

MLTable, deren Partitionsformat auf das angegebene Format festgelegt ist

Rückgabetyp

filter

Filtern Sie die Daten, und lassen Sie nur die Datensätze zurück, die mit dem angegebenen Ausdruck übereinstimmen.

filter(expression)

Parameter

expression
string
Erforderlich

Der auszuwertende Ausdruck.

Gibt zurück

MLTable nach dem Filter

Rückgabetyp

Hinweise

Ausdrücke werden gestartet, indem die mltable mit dem Namen einer Spalte indiziert wird. Sie unterstützen eine Vielzahl von Funktionen und Operatoren und können mithilfe von logischen Operatoren kombiniert werden. Der resultierende Ausdruck wird verzögert für jeden Datensatz ausgewertet, wenn ein Datenpullvorgang erfolgt, und nicht an der Stelle, an der er definiert ist.


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

get_partition_count

Gibt die Anzahl der Datenpartitionen zurück, die den Daten zugrunde liegen, die dieser MLTable zugeordnet sind.

get_partition_count() -> int

Gibt zurück

Datenpartitionen in dieser MLTable

Rückgabetyp

int

keep_columns

Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten beizubehalten und alle anderen aus dem Dataset zu löschen. Wenn eine leere Liste, ein Tupel oder eine leere Menge angegeben wird, wird nichts gelöscht. Doppelte Spalten lösen eine UserErrorException aus.

Wenn Spalten in MLTable.traits.timestamp_column oder Spalten in MLTable.traits.index_columns nicht explizit beibehalten werden, wird eine UserErrorException erstellt.

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

Parameter

columns
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]
Erforderlich

zu behaltende Spalten in dieser MLTable

Gibt zurück

MLTable mit hinzugefügtem Transformationsschritt

Rückgabetyp

random_split

Teilt diese MLTable nach dem Zufallsprinzip in zwei MLTables auf, von denen eine etwa "Prozent" % der ursprünglichen MLTable-Daten und die andere den Rest (1-"Prozent") aufweist.

random_split(percent=0.5, seed=None)

Parameter

percent
Union[int, float]
Erforderlich

Prozentsatz der MLTable, zwischen der aufgeteilt werden soll

seed
Optional[int]
Erforderlich

optionaler zufälliger Startwert

Gibt zurück

Zwei MLTables mit der Datenteilung dieser MLTable durch "Prozent"

Rückgabetyp

<xref:Tuple>[MLTable, MLTable]

save

Speichern Sie diese MLTable als MLTable-YAML-Datei & den zugeordneten Pfaden zum angegebenen Verzeichnispfad.

Wenn kein Pfad angegeben wird, wird standardmäßig das aktuelle Arbeitsverzeichnis verwendet. Wenn der Pfad nicht vorhanden ist, wird er erstellt. Wenn der Pfad remote ist, muss der zugrunde liegende Datenspeicher bereits vorhanden sein. Wenn path ein lokales Verzeichnis ist& nicht absolut ist, wird er als absolut festgelegt.

Wenn der Pfad auf eine Datei verweist, wird eine UserErrorException ausgelöst. Wenn path ein Verzeichnispfad ist, der bereits eine oder mehrere gespeicherte Dateien enthält (einschließlich der MLTable-YAML-Datei), und das Überschreiben auf False oder "fail" festgelegt ist, wird eine UserErrorException ausgelöst. Wenn pfad remote ist, lösen alle lokalen Dateipfade, die nicht als gemeinsam zugeordneten Pfad angegeben sind (Dateipfad relativ zum Verzeichnis, aus dem MLTable geladen wurde) eine UserErrorException aus.

Die gemeinsame Zuordnung steuert, wie zugeordnete Pfade im Pfad gespeichert werden. Bei True werden Dateien zusammen mit der MLTable-YAML-Datei als relative Dateipfade in den Pfad kopiert. Andernfalls werden zugeordnete Dateien nicht kopiert, Remotepfade bleiben wie angegeben, und lokale Dateipfade werden bei Bedarf mit Pfadumleitung relativiert. Beachten Sie, dass False zu nicht kolonierten MLTable-YAML-Dateien führen kann, was nicht empfohlen wird. Wenn der Pfad remote ist, führt dies zu einer UserErrorException, da die relative Pfadumleitung für Remote-URIs nicht unterstützt wird.

Wenn die MLTable programmgesteuert mit Methoden wie from_paths() oder from_read_delimited_files() mit lokalen relativen Pfaden erstellt wird, wird davon ausgegangen, dass der MLTable-Verzeichnispfad das aktuelle Arbeitsverzeichnis ist.

Achten Sie beim Speichern einer neuen MLTable & zugeordneten Datendateien in einem Verzeichnis mit einer vorhandenen MLTable-Datei & zugeordneten Datendateien darauf, dass das Verzeichnis vor dem Speichern der neuen Dateien nicht von vorhandenen Dateien gelöscht wird. Es ist möglich, dass bereits vorhandene Datendateien nach dem Speichern der neuen Dateien beibehalten werden, insbesondere wenn vorhandene Datendateien keine Namen haben, die mit neuen Datendateien übereinstimmen. Wenn die neue MLTable einen Musterbezeichner unter ihren Pfaden enthält, kann dies unbeabsichtigt die MLTable ändern, indem vorhandene Datendateien der neuen MLTable zugeordnet werden.

Wenn Dateipfade in dieser MLTable auf eine vorhandene Datei im Pfad verweisen, aber einen anderen URI aufweisen, wird die vorhandene Datei nicht überschrieben (d. h. übersprungen).

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

Parameter

path
str
Erforderlich

Verzeichnispfad, in dem gespeichert werden soll, standard auf aktuelles Arbeitsverzeichnis

colocated
bool
Erforderlich

Wenn True, speichert Kopien von lokalen & Remotedateipfaden in dieser MLTable unter path als relative Pfade. Andernfalls erfolgt kein Kopieren von Dateien, und Remotedateipfade werden wie angegeben für die gespeicherten MLTable-YAML-Dateipfade und lokale Dateipfade als relative Dateipfade mit Pfadumleitung gespeichert. Wenn pfad remote ist & diese MLTable lokale Dateipfade enthält, wird eine UserErrorException ausgelöst.

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

Wie eine vorhandene MLTable-YAML-Datei und zugehörige Dateien, die möglicherweise bereits unter dem Pfad vorhanden sind, behandelt werden. Optionen sind "Overwrite" (oder True), um vorhandene Dateien zu ersetzen, "fail" (oder False), um einen Fehler auszulösen, wenn eine Datei bereits vorhanden ist, oder "überspringen", um vorhandene Dateien unverändert zu belassen. Kann auch mit festgelegt werden <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
bool
Erforderlich

zeigt den Kopierfortschritt nach stdout an.

if_err_remove_files
bool
Erforderlich

Wenn beim Speichern ein Fehler auftritt, wurden alle erfolgreich gespeicherten Dateien entfernt, um den Vorgang atomar zu machen.

Gibt zurück

dieses MLTable-instance

Rückgabetyp

select_partitions

Fügt einen Transformationsschritt hinzu, um die Partition auszuwählen.

select_partitions(partition_index_list)

Parameter

partition_index_list
list of int
Erforderlich

Liste des Partitionsindexes

Gibt zurück

MLTable mit aktualisierter Partitionsgröße

Rückgabetyp

Hinweise

Der folgende Codeausschnitt zeigt, wie Die select_partitions-API für ausgewählte Partitionen aus der bereitgestellten MLTable verwendet wird.


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

show

Ruft die ersten Anzahlzeilen dieser MLTable als Pandas-Dataframe ab.

show(count=20)

Parameter

count
int
Erforderlich

Anzahl der Zeilen vom Tabellenanfang, die ausgewählt werden sollen

Gibt zurück

Erste Anzahl der Zeilen der MLTable

Rückgabetyp

<xref:<xref:Pandas Dataframe>>

skip

Fügt einen Transformationsschritt hinzu, um die ersten Zählungszeilen dieser MLTable zu überspringen.

skip(count)

Parameter

count
int
Erforderlich

Anzahl der zu überspringenden Zeilen

Gibt zurück

MLTable mit hinzugefügtem Transformationsschritt

take

Fügt einen Transformationsschritt hinzu, um die ersten Anzahlzeilen dieser MLTable auszuwählen.

take(count=20)

Parameter

count
int
Erforderlich

Anzahl der Zeilen vom Tabellenanfang, die ausgewählt werden sollen

Gibt zurück

MLTable mit hinzugefügtem Transformationsschritt "take"

Rückgabetyp

take_random_sample

Fügt einen Transformationsschritt hinzu, um jede Zeile dieser MLTable mit Wahrscheinlichkeit zufällig auszuwählen. Die Wahrscheinlichkeit muss im Bereich [0, 1] liegen. Kann optional einen zufälligen Seed festlegen.

take_random_sample(probability, seed=None)

Parameter

probability
Erforderlich

Chance, dass jede Zeile ausgewählt ist

seed
Optional[int]
Erforderlich

optionaler zufälliger Startwert

Gibt zurück

MLTable mit hinzugefügtem Transformationsschritt

Rückgabetyp

to_pandas_dataframe

Laden Sie alle Datensätze aus den in der MLTable-Datei angegebenen Pfaden in einen Pandas-DataFrame.

to_pandas_dataframe()

Gibt zurück

Pandas-Dataframe mit den Datensätzen aus Pfaden in dieser MLTable

Rückgabetyp

Hinweise

Der folgende Codeausschnitt zeigt, wie Sie die to_pandas_dataframe-API verwenden, um einen Pandas-Dataframe zu erhalten, der der bereitgestellten MLTable entspricht.


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

validate

Überprüft, ob die Daten dieser MLTable geladen werden können, und erfordert, dass auf die Datenquelle(en) der MLTable von der aktuellen Compute aus zugegriffen werden kann.

validate()

Gibt zurück

Keine

Rückgabetyp

Attribute

partition_keys

Die Partitionsschlüssel abrufen.

Gibt zurück

die Partitionsschlüssel

Rückgabetyp

paths

Gibt eine Liste von Wörterbüchern zurück, die die ursprünglichen Pfade für diese MLTable enthalten. Es wird davon ausgegangen, dass relative lokale Dateipfade relativ zu dem Verzeichnis sind, aus dem die MLTable-YAML-Datei geladen wurde, aus der diese MLTable instance.

Gibt zurück

Liste der Diktats, die in der MLTable angegebene Pfade enthalten

Rückgabetyp