Share via


MLTable Clase

Representa una tabla MLTable.

Una MLTable define una serie de operaciones inmutables y diferidamente evaluadas para cargar datos desde el origen de datos. Los datos no se cargan desde el origen hasta que se pide a MLTable que entreguen datos.

Inicialice una nueva mlTable.

Este constructor no se supone que se invoque directamente. MLTable está pensado para crearse mediante load.

Herencia
builtins.object
MLTable

Constructor

MLTable()

Métodos

convert_column_types

Agrega un paso de transformación para convertir las columnas especificadas en sus respectivos tipos nuevos especificados.


   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

Agrega un paso de transformación para quitar las columnas especificadas del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Al intentar quitar una columna que se MLTable.traits.timestamp_column o en MLTable.traits.index_columns se generará una excepción UserErrorException.

extract_columns_from_partition_format

Agrega un paso de transformación para usar la información de partición de cada ruta de acceso y extraerla en columnas según el formato de partición especificado.

La parte de formato "{column_name}" crea una columna de cadena y "{column_name:yyyy/MM/dd/HH/mm/ss}" crea la columna datetime, donde "yyyy", "MM", "dd", "HH", "mm" y "ss" se usan para extraer el año, mes, día, hora, minutos y segundos para el tipo datetime.

El formato debe empezar en la posición de la primera clave de partición hasta el final de la ruta de acceso del archivo. Por ejemplo, dada la ruta de acceso '/Accounts/2019/01/01/data.csv' donde la partición es por nombre y hora del departamento, partition_format='/{Department}/{PartitionDate:aaaa/MM/dd}/data.csv' crea una columna de cadena 'Department' con el valor 'Accounts' y una columna datetime 'PartitionDate' con el valor '2019-01-01'.

filter

Filtra los datos, dejando solo los registros que coinciden con la expresión especificada.

get_partition_count

Devuelve el número de particiones de datos subyacentes a los datos asociados a esta MLTable.

keep_columns

Agrega un paso de transformación para mantener las columnas especificadas y quitar todas las demás del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Si la columna de MLTable.traits.timestamp_column o columnas de MLTable.traits.index_columns no se mantienen explícitamente, se pasa una excepción UserErrorException.

random_split

Divide aleatoriamente esta MLTable en dos MLTables, una que tiene aproximadamente el "porcentaje" de los datos originales de MLTable y el otro que tiene el resto (1-"porcentaje"%).

save

Guarde esta mlTable como un archivo YAML de MLTable & sus rutas de acceso asociadas a la ruta de acceso del directorio especificada.

Si no se especifica la ruta de acceso , el valor predeterminado es el directorio de trabajo actual. Si la ruta de acceso no existe, se crea. Si la ruta de acceso es remota, el almacén de datos subyacente ya debe existir. Si la ruta de acceso es un directorio local & no es absoluta, se hace absoluta.

Si la ruta de acceso apunta a un archivo, se genera una excepción UserErrorException. Si la ruta de acceso es una ruta de acceso de directorio que ya contiene uno o varios archivos que se guardan (incluido el archivo YAML de MLTable) y la sobrescritura se establece en False o "fail", se genera una excepción UserErrorException. Si la ruta de acceso es remota, las rutas de acceso de los archivos locales que no se proporcionan como una ruta de acceso coubica (ruta de acceso de archivo relativa al directorio desde el que se cargó MLTable) generarán una excepción UserErrorException.

coubicación controla cómo se guardan las rutas de acceso asociadas en la ruta de acceso. Si es True, los archivos se copian en la ruta de acceso junto con el archivo YAML de MLTable como rutas de acceso de archivo relativas. De lo contrario, los archivos asociados no se copian, las rutas de acceso remotas permanecen como dadas y las rutas de acceso locales se realizan en relación con el redireccionamiento de ruta de acceso si es necesario. Tenga en cuenta que False puede dar lugar a archivos YAML de MLTable no con punto y coma que no se recomiendan, además, si la ruta de acceso es remota, se producirá una excepción UserErrorException como redireccionamiento de ruta de acceso relativa no se admite para los URI remotos.

Tenga en cuenta que si MLTable se crea mediante programación con métodos como from_paths() o from_read_delimited_files() con rutas de acceso relativas locales, se supone que la ruta de acceso del directorio MLTable es el directorio de trabajo actual.

Tenga en cuenta al guardar una nueva mlTable & archivos de datos asociados a un directorio con un archivo MLTable existente & archivos de datos asociados que el directorio no está borrado de los archivos existentes antes de guardar los nuevos archivos. Es posible que los archivos de datos ya existentes se conserven después de guardar los nuevos archivos, especialmente si los archivos de datos existentes no tienen nombres que coincidan con los nuevos archivos de datos. Si el nuevo MLTable contiene un designador de patrones en sus rutas de acceso, esto puede alterar involuntariamente MLTable asociando archivos de datos existentes con la nueva MLTable.

Si las rutas de acceso de archivo de esta tabla MLTable apuntan a un archivo existente en la ruta de acceso, pero tienen un URI diferente, si la sobrescritura es "fail" o "skip", el archivo existente no se sobrescribirá (es decir, omitido).

select_partitions

Agrega un paso de transformación para seleccionar la partición.

show

Recupera las primeras filas de recuento de esta mlTable como dataframe de Pandas.

skip

Agrega un paso de transformación para omitir las primeras filas de recuento de esta mlTable.

take

Agrega un paso de transformación para seleccionar las primeras filas de recuento de esta mlTable.

take_random_sample

Agrega un paso de transformación para seleccionar aleatoriamente cada fila de esta MLTable con probabilidad de probabilidad . La probabilidad debe estar en el intervalo [0, 1]. Opcionalmente, puede establecer una inicialización aleatoria.

to_pandas_dataframe

Cargue todos los registros de las rutas de acceso especificadas en el archivo MLTable en un DataFrame de Pandas.

validate

Valida si se pueden cargar los datos de esta mlTable, requiere que los orígenes de datos de MLTable sean accesibles desde el proceso actual.

convert_column_types

Agrega un paso de transformación para convertir las columnas especificadas en sus respectivos tipos nuevos especificados.


   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)

Parámetros

Nombre Description
column_types
Requerido

Diccionario de columnas: tipos que el usuario desea convertir

Devoluciones

Tipo Description

MLTable con paso de transformación agregado

drop_columns

Agrega un paso de transformación para quitar las columnas especificadas del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Al intentar quitar una columna que se MLTable.traits.timestamp_column o en MLTable.traits.index_columns se generará una excepción UserErrorException.

drop_columns(columns: str | List[str] | Tuple[str] | Set[str])

Parámetros

Nombre Description
columns
Requerido
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

columnas que se van a quitar de esta mlTable

Devoluciones

Tipo Description

MLTable con paso de transformación agregado

extract_columns_from_partition_format

Agrega un paso de transformación para usar la información de partición de cada ruta de acceso y extraerla en columnas según el formato de partición especificado.

La parte de formato "{column_name}" crea una columna de cadena y "{column_name:yyyy/MM/dd/HH/mm/ss}" crea la columna datetime, donde "yyyy", "MM", "dd", "HH", "mm" y "ss" se usan para extraer el año, mes, día, hora, minutos y segundos para el tipo datetime.

El formato debe empezar en la posición de la primera clave de partición hasta el final de la ruta de acceso del archivo. Por ejemplo, dada la ruta de acceso '/Accounts/2019/01/01/data.csv' donde la partición es por nombre y hora del departamento, partition_format='/{Department}/{PartitionDate:aaaa/MM/dd}/data.csv' crea una columna de cadena 'Department' con el valor 'Accounts' y una columna datetime 'PartitionDate' con el valor '2019-01-01'.

extract_columns_from_partition_format(partition_format)

Parámetros

Nombre Description
partition_format
Requerido
str

Formato de partición que se va a usar para extraer datos en columnas

Devoluciones

Tipo Description

MLTable cuyo formato de partición está establecido en formato dado

filter

Filtra los datos, dejando solo los registros que coinciden con la expresión especificada.

filter(expression)

Parámetros

Nombre Description
expression
Requerido

La expresión que se va a evaluar.

Devoluciones

Tipo Description

MLTable después del filtro

Comentarios

Las expresiones se inician indexando la tabla mltable con el nombre de una columna. Admiten una variedad de funciones y operadores, y se pueden combinar mediante operadores lógicos. La expresión resultante se evaluará de forma diferida para cada registro cuando se produzca una extracción de datos y no cuando se define.


   filtered_mltable = mltable.filter('feature_1 == "5" and target > "0.5)"')
   filtered_mltable = mltable.filter('col("FBI Code") == "11"')

get_partition_count

Devuelve el número de particiones de datos subyacentes a los datos asociados a esta MLTable.

get_partition_count() -> int

Devoluciones

Tipo Description
int

particiones de datos en esta mlTable

keep_columns

Agrega un paso de transformación para mantener las columnas especificadas y quitar todas las demás del conjunto de datos. Si se quita una lista vacía, una tupla o un conjunto no se quita nada. Las columnas duplicadas generarán una excepción UserErrorException.

Si la columna de MLTable.traits.timestamp_column o columnas de MLTable.traits.index_columns no se mantienen explícitamente, se pasa una excepción UserErrorException.

keep_columns(columns: str | List[str] | Tuple[str] | Set[str])

Parámetros

Nombre Description
columns
Requerido
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

columnas de esta mlTable para mantener

Devoluciones

Tipo Description

MLTable con paso de transformación agregado

random_split

Divide aleatoriamente esta MLTable en dos MLTables, una que tiene aproximadamente el "porcentaje" de los datos originales de MLTable y el otro que tiene el resto (1-"porcentaje"%).

random_split(percent=0.5, seed=None)

Parámetros

Nombre Description
percent
Requerido

porcentaje de MLTable entre el que se va a dividir

seed
Requerido

inicialización aleatoria opcional

Devoluciones

Tipo Description

dos MLTables con los datos de mlTable divididos entre ellos por "porcentaje"

save

Guarde esta mlTable como un archivo YAML de MLTable & sus rutas de acceso asociadas a la ruta de acceso del directorio especificada.

Si no se especifica la ruta de acceso , el valor predeterminado es el directorio de trabajo actual. Si la ruta de acceso no existe, se crea. Si la ruta de acceso es remota, el almacén de datos subyacente ya debe existir. Si la ruta de acceso es un directorio local & no es absoluta, se hace absoluta.

Si la ruta de acceso apunta a un archivo, se genera una excepción UserErrorException. Si la ruta de acceso es una ruta de acceso de directorio que ya contiene uno o varios archivos que se guardan (incluido el archivo YAML de MLTable) y la sobrescritura se establece en False o "fail", se genera una excepción UserErrorException. Si la ruta de acceso es remota, las rutas de acceso de los archivos locales que no se proporcionan como una ruta de acceso coubica (ruta de acceso de archivo relativa al directorio desde el que se cargó MLTable) generarán una excepción UserErrorException.

coubicación controla cómo se guardan las rutas de acceso asociadas en la ruta de acceso. Si es True, los archivos se copian en la ruta de acceso junto con el archivo YAML de MLTable como rutas de acceso de archivo relativas. De lo contrario, los archivos asociados no se copian, las rutas de acceso remotas permanecen como dadas y las rutas de acceso locales se realizan en relación con el redireccionamiento de ruta de acceso si es necesario. Tenga en cuenta que False puede dar lugar a archivos YAML de MLTable no con punto y coma que no se recomiendan, además, si la ruta de acceso es remota, se producirá una excepción UserErrorException como redireccionamiento de ruta de acceso relativa no se admite para los URI remotos.

Tenga en cuenta que si MLTable se crea mediante programación con métodos como from_paths() o from_read_delimited_files() con rutas de acceso relativas locales, se supone que la ruta de acceso del directorio MLTable es el directorio de trabajo actual.

Tenga en cuenta al guardar una nueva mlTable & archivos de datos asociados a un directorio con un archivo MLTable existente & archivos de datos asociados que el directorio no está borrado de los archivos existentes antes de guardar los nuevos archivos. Es posible que los archivos de datos ya existentes se conserven después de guardar los nuevos archivos, especialmente si los archivos de datos existentes no tienen nombres que coincidan con los nuevos archivos de datos. Si el nuevo MLTable contiene un designador de patrones en sus rutas de acceso, esto puede alterar involuntariamente MLTable asociando archivos de datos existentes con la nueva MLTable.

Si las rutas de acceso de archivo de esta tabla MLTable apuntan a un archivo existente en la ruta de acceso, pero tienen un URI diferente, si la sobrescritura es "fail" o "skip", el archivo existente no se sobrescribirá (es decir, omitido).

save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)

Parámetros

Nombre Description
path
Requerido
str

ruta de acceso del directorio en la que guardar, de forma predeterminada en el directorio de trabajo actual

colocated
Requerido

Si es True, guarda copias de las rutas de acceso locales de & archivos remotos en esta mlTable en ruta de acceso como rutas de acceso relativas. De lo contrario, no se produce ninguna copia de archivos y las rutas de acceso a archivos remotos se guardan como dadas al archivo YAML de MLTable guardado y las rutas de acceso de archivo locales como rutas de acceso relativas con redirección de ruta de acceso. Si la ruta de acceso es remota & esta mlTable contiene rutas de acceso de archivo locales, se generará una excepción UserErrorException.

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

Cómo se controla el archivo YAML de MLTable existente y los archivos asociados que pueden existir en la ruta de acceso . Las opciones son "sobrescribir" (o True) para reemplazar los archivos existentes, "fail" (o False) para generar un error si ya existe un archivo o "skip" para dejar los archivos existentes tal cual. También se puede establecer con <xref:mltable.MLTableSaveOverwriteOptions>.

show_progress
Requerido

muestra el progreso de copia en stdout

if_err_remove_files
Requerido

si se produce algún error durante el guardado, se quitaron los archivos guardados correctamente para que la operación sea atómica.

Devoluciones

Tipo Description

esta instancia de MLTable

select_partitions

Agrega un paso de transformación para seleccionar la partición.

select_partitions(partition_index_list)

Parámetros

Nombre Description
partition_index_list
Requerido
list of int

lista de índices de partición

Devoluciones

Tipo Description

MLTable con el tamaño de partición actualizado

Comentarios

En el fragmento de código siguiente se muestra cómo usar la API de select_partitions para las particiones seleccionadas de mlTable proporcionada.


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

show

Recupera las primeras filas de recuento de esta mlTable como dataframe de Pandas.

show(count=20)

Parámetros

Nombre Description
count
Requerido
int

número de filas de la parte superior de la tabla que se van a seleccionar

Devoluciones

Tipo Description
<xref:Pandas> <xref:Dataframe>

primeras filas de recuento de MLTable

skip

Agrega un paso de transformación para omitir las primeras filas de recuento de esta mlTable.

skip(count)

Parámetros

Nombre Description
count
Requerido
int

número de filas que se van a omitir

Devoluciones

Tipo Description

MLTable con paso de transformación agregado

take

Agrega un paso de transformación para seleccionar las primeras filas de recuento de esta mlTable.

take(count=20)

Parámetros

Nombre Description
count
Requerido
int

número de filas de la parte superior de la tabla que se van a seleccionar

Devoluciones

Tipo Description

MLTable con el paso de transformación "take" agregado

take_random_sample

Agrega un paso de transformación para seleccionar aleatoriamente cada fila de esta MLTable con probabilidad de probabilidad . La probabilidad debe estar en el intervalo [0, 1]. Opcionalmente, puede establecer una inicialización aleatoria.

take_random_sample(probability, seed=None)

Parámetros

Nombre Description
probability
Requerido

probabilidad de que se seleccione cada fila

seed
Requerido

inicialización aleatoria opcional

Devoluciones

Tipo Description

MLTable con paso de transformación agregado

to_pandas_dataframe

Cargue todos los registros de las rutas de acceso especificadas en el archivo MLTable en un DataFrame de Pandas.

to_pandas_dataframe()

Devoluciones

Tipo Description

Trama de datos de Pandas que contiene los registros de las rutas de acceso de esta mlTable

Comentarios

En el siguiente fragmento de código se muestra cómo usar la API de to_pandas_dataframe para obtener un dataframe de Pandas correspondiente a mlTable proporcionado.


   from mltable import load
   tbl = load('.\samples\mltable_sample')
   pdf = tbl.to_pandas_dataframe()
   print(pdf.shape)

validate

Valida si se pueden cargar los datos de esta mlTable, requiere que los orígenes de datos de MLTable sean accesibles desde el proceso actual.

validate()

Devoluciones

Tipo Description

None

Atributos

partition_keys

Devuelve las claves de partición.

Devoluciones

Tipo Description

Las claves de partición.

paths

Devuelve una lista de diccionarios que contienen las rutas de acceso originales dadas a esta MLTable. Se supone que las rutas de acceso de archivo locales relativas son relativas al directorio desde el que se cargó el archivo YAML de MLTable desde el que se cargó esta instancia de MLTable.

Devoluciones

Tipo Description

lista de dicts que contienen rutas de acceso especificadas en MLTable