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 ein Satz 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 der einzelnen Pfade 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 lautet, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/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 ein Satz angegeben wird, wird nichts gelöscht. Doppelte Spalten lösen eine UserErrorException aus.

Wenn die Spalte in MLTable.traits.timestamp_column oder Spalten in MLTable.traits.index_columns nicht explizit beibehalten wird, ist eine UserErrorException-Datei vorhanden.

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 mit dem Rest (1-"Prozent") verfügt.

save

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

Wenn der Pfad nicht angegeben ist, 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 pfad 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 pfad 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 der Pfad remote ist, lösen alle lokalen Dateipfade, die nicht als zugeordneter Pfad angegeben sind (Dateipfad relativ zum Verzeichnis, aus dem MLTable geladen wurde) eine UserErrorException aus.

Gemeinsam zugeordnete Steuerelemente, wie zugeordnete Pfade im Pfad gespeichert werden. Wenn 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 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 unter ihren Pfaden einen Musterentwurfsator enthält, kann dies die MLTable unbeabsichtigt ändern, indem vorhandene Datendateien der neuen MLTable zugeordnet werden.

Wenn Dateipfade in dieser MLTable auf eine vorhandene Datei im Pfad verweisen, aber über einen anderen URI verfügen, 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 Zählungszeilen 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 Zählungszeilen dieser MLTable auszuwählen.

take_random_sample

Fügt einen Transformationsschritt hinzu, um jede Zeile dieser MLTable mit Wahrscheinlichkeitswahrscheinlichkeit 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 pfaden, die in der MLTable-Datei angegeben sind, 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 ein Satz 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 der einzelnen Pfade 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 lautet, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/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 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 ein Satz angegeben wird, wird nichts gelöscht. Doppelte Spalten lösen eine UserErrorException aus.

Wenn die Spalte in MLTable.traits.timestamp_column oder Spalten in MLTable.traits.index_columns nicht explizit beibehalten wird, ist eine UserErrorException-Datei vorhanden.

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]]

Spalten in dieser MLTable, die beibehalten werden sollen

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 mit dem Rest (1-"Prozent") verfügt.

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 Start

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 der Pfad nicht angegeben ist, 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 pfad 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 pfad 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 der Pfad remote ist, lösen alle lokalen Dateipfade, die nicht als zugeordneter Pfad angegeben sind (Dateipfad relativ zum Verzeichnis, aus dem MLTable geladen wurde) eine UserErrorException aus.

Gemeinsam zugeordnete Steuerelemente, wie zugeordnete Pfade im Pfad gespeichert werden. Wenn 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 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 unter ihren Pfaden einen Musterentwurfsator enthält, kann dies die MLTable unbeabsichtigt ändern, indem vorhandene Datendateien der neuen MLTable zugeordnet werden.

Wenn Dateipfade in dieser MLTable auf eine vorhandene Datei im Pfad verweisen, aber über einen anderen URI verfügen, 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 zum Speichern, standardmäßig aktuelles Arbeitsverzeichnis

colocated
Erforderlich

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

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

Wie vorhandene MLTable-YAML-Dateien und zugehörige Dateien, die möglicherweise bereits unter dem Pfad vorhanden sind, behandelt werden. Optionen sind "überschreiben" (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, alle erfolgreich gespeicherten Dateien entfernt, um den Vorgang atomar zu machen

Gibt zurück

Typ Beschreibung

diese 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 Sie die select_partitions-API für ausgewählte Partitionen aus der bereitgestellten MLTable verwenden.


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

show

Ruft die ersten Zählungszeilen dieser MLTable als Pandas-Dataframe ab.

show(count=20)

Parameter

Name Beschreibung
count
Erforderlich
int

Anzahl der zeilen aus der Tabelle, die ausgewählt werden sollen

Gibt zurück

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

Erste Zählungszeilen 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 Zählungszeilen dieser MLTable auszuwählen.

take(count=20)

Parameter

Name Beschreibung
count
Erforderlich
int

Anzahl der zeilen aus der Tabelle, 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 Wahrscheinlichkeitswahrscheinlichkeit 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

Zufall, dass jede Zeile ausgewählt ist

seed
Erforderlich

optionaler zufälliger Start

Gibt zurück

Typ Beschreibung

MLTable mit hinzugefügtem Transformationsschritt

to_pandas_dataframe

Laden Sie alle Datensätze aus den pfaden, die in der MLTable-Datei angegeben sind, 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, aus der diese MLTable instance geladen wurde.

Gibt zurück

Typ Beschreibung

Liste der In der MLTable angegebenen Pfade