Partager via


MLTable Classe

Représente un MLTable.

Un MLTable définit une série d’opérations immuables évaluées tardivement 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é à remettre les 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.object
MLTable

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.


   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

Ajoute une étape de transformation pour supprimer les colonnes données du jeu de données. Si une liste vide, un tuple ou un ensemble n’a rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException.

La 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 d’accès 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 « /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 vide, un tuple ou un ensemble n’a rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException.

Si une colonne dans MLTable.traits.timestamp_column ou des colonnes de 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 environ « pourcentage » des données mltables 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és au chemin du répertoire donné.

Si le chemin d’accès n’est pas donné, 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 d’accès 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 userErrorException est déclenchée. Si le chemin d’accès est distant, tous les chemins d’accès de fichiers locaux non donnés en tant que chemin d’accès colocalisé (chemin d’accès au fichier par rapport au répertoire à partir duquel MLTable a été chargé) déclenchent une 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 tels qu’ils sont donnés et les chemins d’accès locaux sont effectués par rapport avec la redirection du chemin si nécessaire. Notez que false peut entraîner des fichiers YAML MLTable non alloués, ce qui n’est pas recommandé. En outre, si le chemin d’accès est distant, cela entraîne une userErrorException, car la redirection du chemin relatif n’est pas prise en charge pour les URI distants.

Notez que si le MLTable est créé de manière programmatique avec des méthodes telles que from_paths() ou from_read_delimited_files() avec des chemins relatifs locaux, le chemin du répertoire MLTable est supposé être le répertoire de travail actuel.

Lors de l’enregistrement d’un nouveau MLTable & fichiers de données associés dans un répertoire avec un fichier MLTable existant & fichiers de données associés, 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 modifier involontairement le MLTable en associant des fichiers de données existants au nouveau MLTable.

Si les chemins de fichier de ce MLTable pointent vers un fichier existant dans le chemin d’accès , mais ont un URI différent, si le remplacement est « fail » 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 ce MLTable en tant que dataframe Pandas.

skip

Ajoute une étape de transformation pour ignorer les premières lignes de ce MLTable.

take

Ajoute une étape de transformation pour sélectionner les premières lignes de ce MLTable.

take_random_sample

Ajoute une étape de transformation pour sélectionner aléatoirement chaque ligne de ce MLTable avec une probabilité de 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

Vérifie 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 vide, un tuple ou un ensemble n’a rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException.

La 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
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

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 d’accès 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 « /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
str

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 le 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 le filtre

Remarques

Les expressions sont démarrées en indexant le 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
int

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 vide, un tuple ou un ensemble n’a rien n’est supprimé. Les colonnes dupliquées déclenchent une exception UserErrorException.

Si une colonne dans MLTable.traits.timestamp_column ou des colonnes de 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
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

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 environ « pourcentage » des données mltables 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 de MLTable à fractionner entre

seed
Obligatoire

amorçage aléatoire facultatif

Retours

Type Description

deux MLTables avec les données de ce MLTable divisés entre eux par « pourcentage »

save

Enregistrez ce MLTable en tant que fichier YAML MLTable & ses chemins d’accès associés au chemin du répertoire donné.

Si le chemin d’accès n’est pas donné, 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 d’accès 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 userErrorException est déclenchée. Si le chemin d’accès est distant, tous les chemins d’accès de fichiers locaux non donnés en tant que chemin d’accès colocalisé (chemin d’accès au fichier par rapport au répertoire à partir duquel MLTable a été chargé) déclenchent une 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 tels qu’ils sont donnés et les chemins d’accès locaux sont effectués par rapport avec la redirection du chemin si nécessaire. Notez que false peut entraîner des fichiers YAML MLTable non alloués, ce qui n’est pas recommandé. En outre, si le chemin d’accès est distant, cela entraîne une userErrorException, car la redirection du chemin relatif n’est pas prise en charge pour les URI distants.

Notez que si le MLTable est créé de manière programmatique avec des méthodes telles que from_paths() ou from_read_delimited_files() avec des chemins relatifs locaux, le chemin du répertoire MLTable est supposé être le répertoire de travail actuel.

Lors de l’enregistrement d’un nouveau MLTable & fichiers de données associés dans un répertoire avec un fichier MLTable existant & fichiers de données associés, 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 modifier involontairement le MLTable en associant des fichiers de données existants au nouveau MLTable.

Si les chemins de fichier de ce MLTable pointent vers un fichier existant dans le chemin d’accès , mais ont un URI différent, si le remplacement est « fail » 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
str

chemin d’accès au répertoire dans lequel enregistrer, par défaut dans 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 donnés au 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 de fichiers locaux, une userErrorException est déclenchée.

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

Comment un fichier YAML MLTable existant et les fichiers associés qui peuvent déjà exister sous le chemin d’accès sont gérés. Les options sont « overwrite » (ou True) pour remplacer tous les fichiers existants, « fail » (ou False) pour déclencher une erreur si un fichier existe déjà, ou « skip » pour laisser les fichiers existants en l’état. 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
list of int

liste de l’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 ce MLTable en tant que dataframe Pandas.

show(count=20)

Paramètres

Nom Description
count
Obligatoire
int

nombre de lignes du haut du tableau à sélectionner

Retours

Type Description
<xref:Pandas> <xref:Dataframe>

premier nombre de lignes du MLTable

skip

Ajoute une étape de transformation pour ignorer les premières lignes de ce MLTable.

skip(count)

Paramètres

Nom Description
count
Obligatoire
int

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 ce MLTable.

take(count=20)

Paramètres

Nom Description
count
Obligatoire
int

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 aléatoirement chaque ligne de ce MLTable avec une probabilité de 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

chance que chaque ligne soit sélectionnée

seed
Obligatoire

amorçage aléatoire facultatif

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

Vérifie 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

Retourne les clés de partition.

Retours

Type Description

clés de partition

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 des dicts contenant les chemins d’accès spécifiés dans mlTable