MLTable Classe
Représente un MLTable.
Un MLTable définit une série d’opérations immuables évaluées de manière différée pour charger des données à partir de la source de données. Les données ne sont pas chargées à partir de la source tant que MLTable n’est pas invité à fournir des données.
Initialisez un nouveau MLTable.
Ce constructeur n’est pas censé être appelé directement. MLTable est destiné à être créé à l’aide de load.
- Héritage
-
builtins.objectMLTable
Constructeur
MLTable()
Méthodes
convert_column_types |
Ajoute une étape de transformation pour convertir les colonnes spécifiées dans leurs nouveaux types spécifiés respectifs.
|
drop_columns |
Ajoute une étape de transformation pour supprimer les colonnes données du jeu de données. Si une liste, un tuple ou un ensemble vide est donné, rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException. Toute tentative de suppression d’une colonne MLTable.traits.timestamp_column ou dans MLTable.traits.index_columns déclenche une exception UserErrorException. |
extract_columns_from_partition_format |
Ajoute une étape de transformation pour utiliser les informations de partition de chaque chemin et les extraire dans des colonnes en fonction du format de partition spécifié. La partie de format « {column_name} » crée une colonne de chaîne, et « {column_name:yyyy/MM/dd/HH/mm/ss} » crée une colonne DateHeure, où « yyyy », « MM », « dd », « HH », « mm » et « ss » sont utilisés pour extraire l’année, le mois, le jour, l’heure, les minutes et les secondes pour le type DateHeure. Le format doit commencer à partir de la position de la première clé de partition et se poursuivre jusqu’à la fin du chemin d’accès au fichier. Par exemple, étant donné le chemin d’accès « /Accounts/2019/01/01/data.csv » où la partition est par nom et heure de service, partition_format='/{Department}/{PartitionDate :yyyy/MM/dd}/data.csv » crée une colonne de chaîne « Department » avec la valeur « Accounts » et une colonne datetime « PartitionDate » avec la valeur « 2019-01-01 ». |
filter |
Filtrer les données, en laissant uniquement les enregistrements qui correspondent à l’expression spécifiée. |
get_partition_count |
Retourne le nombre de partitions de données sous-jacentes aux données associées à ce MLTable. |
keep_columns |
Ajoute une étape de transformation pour conserver les colonnes spécifiées et supprimer toutes les autres du jeu de données. Si une liste, un tuple ou un ensemble vide est donné, rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException. Si la colonne dans MLTable.traits.timestamp_column ou les colonnes dans MLTable.traits.index_columns ne sont pas explicitement conservées, une exception UserErrorException est raiesd. |
random_split |
Fractionne aléatoirement ce MLTable en deux MLTables, l’un ayant approximativement « pourcentage » des données mlTable d’origine et l’autre ayant le reste (1 à « pour cent »). |
save |
Enregistrez ce MLTable en tant que fichier YAML MLTable & ses chemins d’accès associé au chemin du répertoire donné. Si le chemin d’accès n’est pas spécifié, la valeur par défaut est le répertoire de travail actuel. Si le chemin d’accès n’existe pas, il est créé. Si le chemin est distant, le magasin de données sous-jacent doit déjà exister. Si path est un répertoire local & n’est pas absolu, il est rendu absolu. Si le chemin pointe vers un fichier, une exception UserErrorException est déclenchée. Si path est un chemin d’accès de répertoire qui contient déjà un ou plusieurs fichiers en cours d’enregistrement (y compris le fichier YAML MLTable) et que le remplacement est défini sur False ou « fail », une exception UserErrorException est déclenchée. Si le chemin d’accès est distant, tous les chemins d’accès aux fichiers locaux non donnés en tant que chemin d’accès colocalisé (chemin d’accès de fichier relatif au répertoire à partir duquel MLTable a été chargé) déclenchent une exception UserErrorException. colocalisé contrôle la façon dont les chemins associés sont enregistrés dans le chemin d’accès. Si la valeur est True, les fichiers sont copiés dans le chemin d’accès à côté du fichier YAML MLTable en tant que chemins de fichier relatifs. Sinon, les fichiers associés ne sont pas copiés, les chemins d’accès distants restent donnés et les chemins d’accès locaux sont rendus relatifs avec la redirection du chemin si nécessaire. Notez que False peut entraîner des fichiers YAML MLTable non colocalisés, ce qui n’est pas recommandé. En outre, si le chemin est distant, cela entraîne une exception UserErrorException, car la redirection de chemin relatif n’est pas prise en charge pour les URI distants. Notez que si mlTable est créé par programmation avec des méthodes telles que from_paths() ou from_read_delimited_files() avec des chemins relatifs locaux, le chemin d’accès au répertoire MLTable est supposé être le répertoire de travail actuel. Lorsque vous enregistrez un nouveau MLTable & fichiers de données associés dans un répertoire avec un fichier MLTable existant & fichiers de données associés, n’oubliez pas que le répertoire n’est pas effacé des fichiers existants avant d’enregistrer les nouveaux fichiers. Il est possible que les fichiers de données déjà existants persistent après l’enregistrement des nouveaux fichiers, en particulier si les fichiers de données existants n’ont pas de noms correspondant à de nouveaux fichiers de données. Si le nouveau MLTable contient un indicateur de modèle sous ses chemins d’accès, cela peut involontairement modifier le MLTable en associant des fichiers de données existants au nouveau MLTable. Si les chemins d’accès aux fichiers dans ce MLTable pointent vers un fichier existant dans le chemin d’accès , mais ont un URI différent, si le remplacement est « échec » ou « skip », le fichier existant ne sera pas remplacé (c’est-à-dire ignoré). |
select_partitions |
Ajoute une étape de transformation pour sélectionner la partition. |
show |
Récupère les premières lignes de comptage de ce MLTable sous la forme d’un dataframe Pandas. |
skip |
Ajoute une étape de transformation pour ignorer les premières lignes de comptage de ce MLTable. |
take |
Ajoute une étape de transformation pour sélectionner les premières lignes de comptage de ce MLTable. |
take_random_sample |
Ajoute une étape de transformation pour sélectionner de manière aléatoire chaque ligne de ce MLTable avec probabilité . La probabilité doit être comprise dans la plage [0, 1]. Peut éventuellement définir une valeur initiale aléatoire. |
to_pandas_dataframe |
Chargez tous les enregistrements des chemins spécifiés dans le fichier MLTable dans un DataFrame Pandas. |
validate |
Valide si les données de ce MLTable peuvent être chargées, nécessite que la ou les sources de données de MLTable soient accessibles à partir du calcul actuel. |
convert_column_types
Ajoute une étape de transformation pour convertir les colonnes spécifiées dans leurs nouveaux types spécifiés respectifs.
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)
Paramètres
Nom | Description |
---|---|
column_types
Obligatoire
|
Dictionnaire de colonne : types que l’utilisateur souhaite convertir |
Retours
Type | Description |
---|---|
MLTable avec étape de transformation ajoutée |
drop_columns
Ajoute une étape de transformation pour supprimer les colonnes données du jeu de données. Si une liste, un tuple ou un ensemble vide est donné, rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException.
Toute tentative de suppression d’une colonne MLTable.traits.timestamp_column ou dans MLTable.traits.index_columns déclenche une exception UserErrorException.
drop_columns(columns: str | List[str] | Tuple[str] | Set[str])
Paramètres
Nom | Description |
---|---|
columns
Obligatoire
|
colonne(s) à supprimer de ce MLTable |
Retours
Type | Description |
---|---|
MLTable avec étape de transformation ajoutée |
extract_columns_from_partition_format
Ajoute une étape de transformation pour utiliser les informations de partition de chaque chemin et les extraire dans des colonnes en fonction du format de partition spécifié.
La partie de format « {column_name} » crée une colonne de chaîne, et « {column_name:yyyy/MM/dd/HH/mm/ss} » crée une colonne DateHeure, où « yyyy », « MM », « dd », « HH », « mm » et « ss » sont utilisés pour extraire l’année, le mois, le jour, l’heure, les minutes et les secondes pour le type DateHeure.
Le format doit commencer à partir de la position de la première clé de partition et se poursuivre jusqu’à la fin du chemin d’accès au fichier. Par exemple, étant donné le chemin d’accès « /Accounts/2019/01/01/data.csv » où la partition est par nom et heure de service, partition_format='/{Department}/{PartitionDate :yyyy/MM/dd}/data.csv » crée une colonne de chaîne « Department » avec la valeur « Accounts » et une colonne datetime « PartitionDate » avec la valeur « 2019-01-01 ».
extract_columns_from_partition_format(partition_format)
Paramètres
Nom | Description |
---|---|
partition_format
Obligatoire
|
Format de partition à utiliser pour extraire des données dans des colonnes |
Retours
Type | Description |
---|---|
MLTable dont le format de partition est défini sur un format donné |
filter
Filtrer les données, en laissant uniquement les enregistrements qui correspondent à l’expression spécifiée.
filter(expression)
Paramètres
Nom | Description |
---|---|
expression
Obligatoire
|
Expression à évaluer. |
Retours
Type | Description |
---|---|
MLTable après filtre |
Remarques
Les expressions sont démarrées en indexant la mltable avec le nom d’une colonne. Elles prennent en charge un large éventail de fonctions et d’opérateurs et peuvent être combinées à l’aide d’opérateurs logiques. L’expression résultante sera évaluée tardivement pour chaque enregistrement quand une opération d’extraction de données se produit et pas où elle est définie.
filtered_mltable = mltable.filter('feature_1 == "5" and target > "0.5)"')
filtered_mltable = mltable.filter('col("FBI Code") == "11"')
get_partition_count
Retourne le nombre de partitions de données sous-jacentes aux données associées à ce MLTable.
get_partition_count() -> int
Retours
Type | Description |
---|---|
partitions de données dans ce MLTable |
keep_columns
Ajoute une étape de transformation pour conserver les colonnes spécifiées et supprimer toutes les autres du jeu de données. Si une liste, un tuple ou un ensemble vide est donné, rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException.
Si la colonne dans MLTable.traits.timestamp_column ou les colonnes dans MLTable.traits.index_columns ne sont pas explicitement conservées, une exception UserErrorException est raiesd.
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
Paramètres
Nom | Description |
---|---|
columns
Obligatoire
|
colonnes dans ce MLTable à conserver |
Retours
Type | Description |
---|---|
MLTable avec étape de transformation ajoutée |
random_split
Fractionne aléatoirement ce MLTable en deux MLTables, l’un ayant approximativement « pourcentage » des données mlTable d’origine et l’autre ayant le reste (1 à « pour cent »).
random_split(percent=0.5, seed=None)
Paramètres
Nom | Description |
---|---|
percent
Obligatoire
|
pourcentage du MLTable à fractionner entre |
seed
Obligatoire
|
valeur de départ aléatoire facultative |
Retours
Type | Description |
---|---|
deux MLTables avec les données de ce MLTable réparties entre eux par « pourcentage » |
save
Enregistrez ce MLTable en tant que fichier YAML MLTable & ses chemins d’accès associé au chemin du répertoire donné.
Si le chemin d’accès n’est pas spécifié, la valeur par défaut est le répertoire de travail actuel. Si le chemin d’accès n’existe pas, il est créé. Si le chemin est distant, le magasin de données sous-jacent doit déjà exister. Si path est un répertoire local & n’est pas absolu, il est rendu absolu.
Si le chemin pointe vers un fichier, une exception UserErrorException est déclenchée. Si path est un chemin d’accès de répertoire qui contient déjà un ou plusieurs fichiers en cours d’enregistrement (y compris le fichier YAML MLTable) et que le remplacement est défini sur False ou « fail », une exception UserErrorException est déclenchée. Si le chemin d’accès est distant, tous les chemins d’accès aux fichiers locaux non donnés en tant que chemin d’accès colocalisé (chemin d’accès de fichier relatif au répertoire à partir duquel MLTable a été chargé) déclenchent une exception UserErrorException.
colocalisé contrôle la façon dont les chemins associés sont enregistrés dans le chemin d’accès. Si la valeur est True, les fichiers sont copiés dans le chemin d’accès à côté du fichier YAML MLTable en tant que chemins de fichier relatifs. Sinon, les fichiers associés ne sont pas copiés, les chemins d’accès distants restent donnés et les chemins d’accès locaux sont rendus relatifs avec la redirection du chemin si nécessaire. Notez que False peut entraîner des fichiers YAML MLTable non colocalisés, ce qui n’est pas recommandé. En outre, si le chemin est distant, cela entraîne une exception UserErrorException, car la redirection de chemin relatif n’est pas prise en charge pour les URI distants.
Notez que si mlTable est créé par programmation avec des méthodes telles que from_paths() ou from_read_delimited_files() avec des chemins relatifs locaux, le chemin d’accès au répertoire MLTable est supposé être le répertoire de travail actuel.
Lorsque vous enregistrez un nouveau MLTable & fichiers de données associés dans un répertoire avec un fichier MLTable existant & fichiers de données associés, n’oubliez pas que le répertoire n’est pas effacé des fichiers existants avant d’enregistrer les nouveaux fichiers. Il est possible que les fichiers de données déjà existants persistent après l’enregistrement des nouveaux fichiers, en particulier si les fichiers de données existants n’ont pas de noms correspondant à de nouveaux fichiers de données. Si le nouveau MLTable contient un indicateur de modèle sous ses chemins d’accès, cela peut involontairement modifier le MLTable en associant des fichiers de données existants au nouveau MLTable.
Si les chemins d’accès aux fichiers dans ce MLTable pointent vers un fichier existant dans le chemin d’accès , mais ont un URI différent, si le remplacement est « échec » ou « skip », le fichier existant ne sera pas remplacé (c’est-à-dire ignoré).
save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)
Paramètres
Nom | Description |
---|---|
path
Obligatoire
|
chemin d’accès au répertoire dans lequel enregistrer, par défaut vers le répertoire de travail actuel |
colocated
Obligatoire
|
Si la valeur est True, enregistre des copies des chemins d’accès de fichiers locaux & distants dans ce MLTable sous chemin d’accès en tant que chemins relatifs. Sinon, aucune copie de fichiers ne se produit et les chemins d’accès de fichiers distants sont enregistrés comme indiqués dans le fichier YAML MLTable enregistré et les chemins d’accès aux fichiers locaux en tant que chemins de fichiers relatifs avec redirection de chemin d’accès. Si le chemin d’accès est distant & ce MLTable contient des chemins d’accès aux fichiers locaux, une exception UserErrorException est déclenchée. |
overwrite
Obligatoire
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
Gestion d’un fichier YAML MLTable et des fichiers associés qui peuvent déjà exister sous le chemin d’accès sont gérés. Les options sont « remplacer » (ou True) pour remplacer tous les fichiers existants, « fail » (ou False) pour générer une erreur si un fichier existe déjà, ou « skip » pour laisser les fichiers existants tels quel. Peut également définir avec <xref:mltable.MLTableSaveOverwriteOptions>. |
show_progress
Obligatoire
|
affiche la progression de la copie dans stdout |
if_err_remove_files
Obligatoire
|
si une erreur se produit lors de l’enregistrement, supprime tous les fichiers enregistrés avec succès pour rendre l’opération atomique |
Retours
Type | Description |
---|---|
ce instance MLTable |
select_partitions
Ajoute une étape de transformation pour sélectionner la partition.
select_partitions(partition_index_list)
Paramètres
Nom | Description |
---|---|
partition_index_list
Obligatoire
|
liste d’index de partition |
Retours
Type | Description |
---|---|
MLTable avec la taille de partition mise à jour |
Remarques
L’extrait de code suivant montre comment utiliser l’API select_partitions pour les partitions sélectionnées à partir du MLTable fourni.
partition_index_list = [1, 2]
mltable = mltable.select_partitions(partition_index_list)
show
Récupère les premières lignes de comptage de ce MLTable sous la forme d’un dataframe Pandas.
show(count=20)
Paramètres
Nom | Description |
---|---|
count
Obligatoire
|
nombre de lignes du haut du tableau à sélectionner |
Retours
Type | Description |
---|---|
<xref:Pandas> <xref:Dataframe>
|
first count rows of the MLTable |
skip
Ajoute une étape de transformation pour ignorer les premières lignes de comptage de ce MLTable.
skip(count)
Paramètres
Nom | Description |
---|---|
count
Obligatoire
|
nombre de lignes à ignorer |
Retours
Type | Description |
---|---|
MLTable avec étape de transformation ajoutée |
take
Ajoute une étape de transformation pour sélectionner les premières lignes de comptage de ce MLTable.
take(count=20)
Paramètres
Nom | Description |
---|---|
count
Obligatoire
|
nombre de lignes du haut du tableau à sélectionner |
Retours
Type | Description |
---|---|
MLTable avec l’étape de transformation « prendre » ajoutée |
take_random_sample
Ajoute une étape de transformation pour sélectionner de manière aléatoire chaque ligne de ce MLTable avec probabilité . La probabilité doit être comprise dans la plage [0, 1]. Peut éventuellement définir une valeur initiale aléatoire.
take_random_sample(probability, seed=None)
Paramètres
Nom | Description |
---|---|
probability
Obligatoire
|
probabilité que chaque ligne soit sélectionnée |
seed
Obligatoire
|
valeur de départ aléatoire facultative |
Retours
Type | Description |
---|---|
MLTable avec étape de transformation ajoutée |
to_pandas_dataframe
Chargez tous les enregistrements des chemins spécifiés dans le fichier MLTable dans un DataFrame Pandas.
to_pandas_dataframe()
Retours
Type | Description |
---|---|
Dataframe Pandas contenant les enregistrements des chemins d’accès dans ce MLTable |
Remarques
L’extrait de code suivant montre comment utiliser l’API to_pandas_dataframe pour obtenir un dataframe pandas correspondant au MLTable fourni.
from mltable import load
tbl = load('.\samples\mltable_sample')
pdf = tbl.to_pandas_dataframe()
print(pdf.shape)
validate
Valide si les données de ce MLTable peuvent être chargées, nécessite que la ou les sources de données de MLTable soient accessibles à partir du calcul actuel.
validate()
Retours
Type | Description |
---|---|
None |
Attributs
partition_keys
paths
Retourne une liste de dictionnaires contenant les chemins d’accès d’origine donnés à ce MLTable. Les chemins d’accès aux fichiers locaux relatifs sont supposés être relatifs au répertoire à partir duquel le fichier YAML MLTable instance a été chargé.
Retours
Type | Description |
---|---|
liste de dicts contenant les chemins spécifiés dans le MLTable |