Freigeben über


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

Name Beschreibung
column_types
Erforderlich

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

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt

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

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

Spalten, die aus dieser MLTable gelöscht werden sollen

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt

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

Name Beschreibung
partition_format
Erforderlich
str

Partitionsformat zum Extrahieren von Daten in Spalten

Gibt zurück

Typ Beschreibung

MLTable, deren Partitionsformat auf das angegebene Format festgelegt ist

filter

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

filter(expression)

Parameter

Name Beschreibung
expression
Erforderlich

Der auszuwertende Ausdruck.

Gibt zurück

Typ Beschreibung

MLTable nach dem Filter

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

Typ Beschreibung
int

Datenpartitionen in dieser MLTable

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

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

zu behaltende Spalten in dieser MLTable

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt

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

Name Beschreibung
percent
Erforderlich

Prozentsatz der MLTable, zwischen der aufgeteilt werden soll

seed
Erforderlich

optionaler zufälliger Startwert

Gibt zurück

Typ Beschreibung

Zwei MLTables mit der Datenteilung dieser MLTable durch "Prozent"

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

Name Beschreibung
path
Erforderlich
str

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

colocated
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
Erforderlich
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]

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
Erforderlich

zeigt den Kopierfortschritt nach stdout an.

if_err_remove_files
Erforderlich

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

Gibt zurück

Typ Beschreibung

dieses MLTable-instance

select_partitions

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

select_partitions(partition_index_list)

Parameter

Name Beschreibung
partition_index_list
Erforderlich
list of int

Liste des Partitionsindexes

Gibt zurück

Typ Beschreibung

MLTable mit aktualisierter Partitionsgröße

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

Name Beschreibung
count
Erforderlich
int

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

Gibt zurück

Typ Beschreibung
<xref:Pandas> <xref:Dataframe>

Erste Anzahl der Zeilen der MLTable

skip

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

skip(count)

Parameter

Name Beschreibung
count
Erforderlich
int

Anzahl der zu überspringenden Zeilen

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt

take

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

take(count=20)

Parameter

Name Beschreibung
count
Erforderlich
int

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

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt "take"

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

Name Beschreibung
probability
Erforderlich

Chance, dass jede Zeile ausgewählt ist

seed
Erforderlich

optionaler zufälliger Startwert

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt

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

Typ Beschreibung

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

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

Typ Beschreibung

Keine

Attribute

partition_keys

Die Partitionsschlüssel abrufen.

Gibt zurück

Typ Beschreibung

die Partitionsschlüssel

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

Typ Beschreibung

Liste der Diktats, die in der MLTable angegebene Pfade enthalten