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.objectMLTable
Konstruktor
MLTable()
Methoden
convert_column_types |
Fügt einen Transformationsschritt hinzu, um die angegebenen Spalten in die jeweils angegebenen neuen Typen zu konvertieren.
|
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
|
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
|
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 |
---|---|
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
|
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
|
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
|
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
|
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
|
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
|
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
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 |