mltable Módulo

Contiene la funcionalidad para crear e interactuar con objetos MLTable.

Clases

DataType

Clase auxiliar para controlar la manipulación adecuada de los tipos de columna admitidos (int, bool, string, etc.). Actualmente se usa con MLTable.convert_column_types(...)& from_delimited_files(...) para especificar a qué tipos se van a convertir columnas. Se seleccionan diferentes tipos con DataType.from_(...) *Métodos.

MLTable

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.

Metadata

Clase que se asigna a la sección de metadatos de MLTable.

Admite la obtención de & la adición de propiedades de metadatos arbritrary.

Traits

Clase que se asigna a la sección de rasgos de MLTable.

Rasgos admitidos actualmente: timestamp_column y index_columns

Enumeraciones

MLTableFileEncoding

Define las opciones de cómo se procesa la codificación al leer datos de archivos para crear una mlTable.

Estos valores de enumeración se usan en la clase MLTable.

MLTableHeaders

Define las opciones de cómo se procesan los encabezados de columna al leer datos de archivos para crear una instancia de MLTable.

Estos valores de enumeración se usan en la clase MLTable.

MLTablePartitionSize

Enumeración del asistente que representa la memoria asignada para leer varias particiones para seleccionar formatos de archivo en diferentes unidades de memoria. Actualmente se usa al leer archivos de líneas JSON o delimitados.

Admite bytes, kilobytes, megabytes y gigabytes como unidades de memoria, en binario.

MLTableSaveOverwriteOption

Define opciones para controlar conflictos de archivos en MLTable.save(). EIther genera un error si se produce un conflicto, sobrescribe el archivo existente con el nuevo archivo o deja el archivo existente tal cual.

Funciones

from_delimited_files

Crea una MLTable a partir de la lista especificada de archivos delimitados.

from_delimited_files(paths, header='all_files_same_headers', delimiter=',', support_multi_line=False, empty_as_string=False, encoding='utf8', include_path_column=False, infer_column_types=True)

Parámetros

paths
list[dict[str, str]]
Requerido

Las rutas de acceso admiten archivos o carpetas con rutas de acceso locales o en la nube. Se supone que las rutas de acceso de archivo locales relativas son relativas al directorio de trabajo actual. Si el directorio primario una ruta de acceso de archivo local es relativa a no es el directorio de trabajo actual, en su lugar se recomienda pasar esa ruta de acceso como una ruta de acceso de archivo absoluta.

header
Union[str, MLTableHeaders]
Requerido

Cómo se controlan los encabezados de columna al leer archivos. Opciones especificadas mediante la enumeración MLTableHeaders. Los encabezados admitidos son "no_header", "from_first_file", "all_files_different_headers" y "all_files_same_headers".

delimiter
str
Requerido

separador usado para dividir columnas

support_multi_line
bool
Requerido

Si es False, todos los saltos de línea, incluidos los de los valores de campo entre comillas, se interpretarán como un salto de registro. Leer los datos de esta manera es una forma más rápida y optimizada de ejecutar en paralelo en varios núcleos de CPU. Sin embargo, puede provocar la generación silenciosa de más registros con valores de campo mal alineados. Debe establecerse en True cuando se sabe que los archivos delimitados contienen saltos de línea entre comillas.

Dado este archivo CSV como ejemplo, los datos se leerán de forma diferente en función de support_multi_line.

A,B,C A1,B1,C1 A2,"B 2",C2


   from mltable import from_delimited_files

   # default behavior: support_multi_line=False
   mltable = from_delimited_files(path)
   print(mltable.to_pandas_dataframe())
   #      A   B     C
   #  0  A1  B1    C1
   #  1  A2   B  None
   #  2  2"  C2  None

   # to handle quoted line breaks
   mltable = from_delimited_files(path, support_multi_line=True)
   print(mltable.to_pandas_dataframe())
   #      A       B   C
   #  0  A1      B1  C1
   #  1  A2  B\r\n2  C2
empty_as_string
bool
Requerido

Cómo se deben controlar los campos vacíos. Si True leerá campos vacíos como cadenas vacías, en caso contrario, leerá como valores NULL. Si True y column contienen datos datetime o numéricos, los campos vacíos siguen leyendo como valores NULL.

encoding
Union[str, MLTableFileEncoding]
Requerido

Especifica la codificación de archivo mediante la enumeración MLTableFileEncoding. Las codificaciones admitidas son:

  • utf8 como "utf8", "utf-8", "utf-8 bom"
  • iso88591 como "iso88591" o "iso-8859-1"
  • latin1 como "latin1" o "latin-1"
  • utf16 como "utf16" o "utf-16"
  • windows1252 como "windows1252" o "windows-1252"
include_path_column
bool
Requerido

Mantener la información de ruta de acceso como una columna en MLTable es útil al leer varios archivos y desea saber de qué archivo procede un registro determinado o para mantener información útil que se puede almacenar en una ruta de acceso de archivo.

infer_column_types
Union[bool, dict[str, Union[str, dict[Union[Tuple[str], str], DataType]]]
Requerido

Si es True, deduce automáticamente todos los tipos de columna. Si es False, deja columnas como cadenas. Si un diccionario, representa las columnas cuyos tipos se van a establecer en tipos dados (con todas las demás columnas inferidas). El diccionario puede contener una clave denominada sample_size asignada a un número entero positivo, que representa el número de filas que se van a usar para deducir los tipos de columna. El diccionario también puede contener una clave denominada "column_type_overrides". Cada clave del diccionario es una cadena que representa un nombre de columna o una tupla de cadenas que representan un grupo de nombres de columna. Cada valor es una cadena (una de las "booleanas", "string", "float" o "int") o .DataType mltable. no se admite DataType.to_stream(). Si se proporciona un diccionario vacío, se supone que es True. El valor predeterminado es True.

Ejemplo de cómo dar formato a infer_column_types.


   from mltable import from_delimited_files

   # default behavior: support_multi_line=False
   mltable = from_delimited_files(paths, infer_column_types={
       'sample_size': 100,
       'column_type_overrides': {
           'colA': 'boolean'
           ('colB', 'colC'): DataType.to_int()
       }
   })

Devoluciones

MLTable

Tipo de valor devuelto

Comentarios

Debe haber una cadena de rutas de acceso válidas.


   # load mltable from local delimited file
   from mltable import from_delimited_files
   paths = [{"file": "./samples/mltable_sample/sample_data.csv"}]
   mltable = from_delimited_files(paths)

from_delta_lake

Crea un objeto MLTable para leer en archivos Parquet de la tabla delta lake.

from_delta_lake(delta_table_uri, timestamp_as_of=None, version_as_of=None, include_path_column=False)

Parámetros

delta_table_uri
str
Requerido

URI que apunta al directorio de la tabla delta que contiene los archivos parquet de delta lake que se van a leer. Los tipos de URI admitidos son: URI de ruta de acceso local, URI de almacenamiento, URI de almacén de datos de formato largo o URI de recursos de datos.

timestamp_as_of
string
Requerido

cadena datetime en formato RFC-3339/ISO-8601 que se usará para leer los archivos parquet coincidentes desde un momento dado específico. ex) "2022-10-01T00:00:00Z", "2022-10-01T00:00:00+08:00", "2022-10-01T01:30:00-08:00"

version_as_of
int
Requerido

versión entera que se va a usar para leer en una versión específica de archivos parquet.

include_path_column
bool
Requerido

Mantenga la información de ruta de acceso como una columna, útil al leer varios archivos y desea saber de qué archivo procede un registro determinado, o para mantener información útil que se puede almacenar en una ruta de acceso de archivo.

Devoluciones

Instancia de MLTable

Tipo de valor devuelto

Comentarios

from_delta_lake crea un objeto MLTable que define las operaciones para cargar datos de la carpeta delta lake en una representación tabular.

Para que Azure Machine Learning pueda acceder a los datos, la ruta de acceso debe apuntar al directorio de la tabla delta y los archivos de delta lake a los que se hace referencia deben ser accesibles por los servicios de AzureML o detrás de direcciones URL web públicas.

from_delta_lake admite la lectura de datos de delta lake desde un URI que apunta a: ruta de acceso local, Blob, ADLS Gen1 y ADLS Gen2

Los usuarios pueden leer y materializar los datos llamando a to_pandas_dataframe() en la mlTable devuelta.


   # create an MLTable object from a delta lake using timestamp versioning and materialize the data
   from mltable import from_delta_lake
   mltable_ts = from_delta_lake(delta_table_uri="./data/delta-01", timestamp_as_of="2021-05-24T00:00:00Z")
   pd = mltable_ts.to_pandas_dataframe()

   # create  an MLTable object from a delta lake using integer versioning and materialize the data
   from mltable import from_delta_lake
   mltable_version = from_delta_lake(delta_table_uri="./data/delta-02", version_as_of=1)
   pd = mltable_version.to_pandas_dataframe()

from_json_lines_files

Cree una instancia de MLTable a partir de la lista especificada de rutas de acceso de archivo JSON.

from_json_lines_files(paths, invalid_lines='error', encoding='utf8', include_path_column=False)

Parámetros

paths
list[dict[str, str]]
Requerido

Las rutas de acceso admiten archivos o carpetas con rutas de acceso locales o en la nube. Se supone que las rutas de acceso de archivo locales relativas son relativas al directorio de trabajo actual. Si el directorio primario una ruta de acceso de archivo local es relativa a no es el directorio de trabajo actual, en su lugar se recomienda pasar esa ruta de acceso como una ruta de acceso de archivo absoluta.

invalid_lines
str
Requerido

Cómo controlar las líneas que no son JSON no válidas, puede ser "drop" o "error". Si se quitan las líneas no válidas "drop", se genera el error else.

encoding
Union[str, MLTableFileEncoding]
Requerido

Especifica la codificación de archivo mediante la enumeración MLTableFileEncoding. Codificaciones de archivos compatibles:

  • utf8 como "utf8", "utf-8", "utf-8 bom"
  • iso88591 como "iso88591" o "iso-8859-1"
  • latin1 como "latin1" o "latin-1"
  • utf16 como "utf16" o "utf-16"
  • windows1252 como "windows1252" o "windows-1252"
include_path_column
bool
Requerido

Mantenga la información de ruta de acceso como una columna, útil al leer varios archivos y desea saber de qué archivo procede un registro determinado, o para mantener información útil que se puede almacenar en una ruta de acceso de archivo.

Devoluciones

MLTable

Tipo de valor devuelto

Comentarios

Debe haber un diccionario de rutas de acceso válidos.


   # load mltable from local JSON paths
   from mltable import from_json_lines_files
   paths = [{'file': './samples/mltable_sample/sample_data.jsonl'}]
   mltable = from_json_lines_files(paths)

from_parquet_files

Cree mlTable a partir de la lista especificada de archivos parquet.

from_parquet_files(paths, include_path_column=False)

Parámetros

paths
list[dict[str, str]]
Requerido

Las rutas de acceso admiten archivos o carpetas con rutas de acceso locales o en la nube. Se supone que las rutas de acceso de archivo locales relativas son relativas al directorio de trabajo actual. Si el directorio primario una ruta de acceso de archivo local es relativa a no es el directorio de trabajo actual, en su lugar se recomienda pasar esa ruta de acceso como una ruta de acceso de archivo absoluta.

include_path_column
bool
Requerido

Mantenga la información de ruta de acceso como una columna, útil al leer varios archivos y desea saber de qué archivo procede un registro determinado, o para mantener información útil que se puede almacenar en una ruta de acceso de archivo.

Devoluciones

Instancia de MLTable

Tipo de valor devuelto

Comentarios

Debe haber un diccionario de rutas de acceso válidos.


   # load mltable from local parquet paths
   from mltable import from_parquet_files
   paths = [{'file': './samples/mltable_sample/sample.parquet'}]
   mltable = from_parquet_files(paths)

from_paths

Cree mlTable a partir de las rutas de acceso especificadas.

from_paths(paths)

Parámetros

paths
list[dict[str, str]]
Requerido

Las rutas de acceso admiten archivos o carpetas con rutas de acceso locales o en la nube. Se supone que las rutas de acceso de archivo locales relativas son relativas al directorio de trabajo actual. Si el directorio primario una ruta de acceso de archivo local es relativa a no es el directorio de trabajo actual, en su lugar se recomienda pasar esa ruta de acceso como una ruta de acceso de archivo absoluta.

Devoluciones

Instancia de MLTable

Tipo de valor devuelto

Comentarios

Debe haber un diccionario de rutas de acceso válidos.


   # load mltable from local paths
   from mltable import from_paths
   tbl = from_paths([{'file': "./samples/mltable_sample"}])

   # load mltable from cloud paths
   from mltable import load
   tbl = from_paths(
       [{'file': "https://<blob-storage-name>.blob.core.windows.net/<path>/sample_file"}])

load

Carga el archivo MLTable (YAML) presente en el URI especificado.

storage_options admite claves de "suscripción", "resource_group", "área de trabajo" o "ubicación". Todos deben localizar un área de trabajo de Azure Machine Learning.

load(uri, storage_options: dict = None, ml_client=None)

Parámetros

uri
str
Requerido

URI admite el URI del almacén de datos de formato largo, el URI de almacenamiento, la ruta de acceso local o el URI de recursos de datos o el URI corto del recurso de datos.

storage_options
dict[str, str]
Requerido

Información del área de trabajo de AML cuando el URI es un recurso de AML

ml_client
MLClient
Requerido

Instancia de MLClient. Para más información, consulte https://learn.microsoft.com/en-us/python/api/azure-ai-ml/azure.ai.ml.mlclient?view=azure-python.

Devoluciones

MLTable

Tipo de valor devuelto

Comentarios

Debe haber un archivo YAML de MLTable válido denominado "MLTable" presente en el URI especificado.


   # load mltable from local folder
   from mltable import load
   tbl = load('.\samples\mltable_sample')

   # load mltable from azureml datastore uri
   from mltable import load
   tbl = load(
       'azureml://subscriptions/<subscription-id>/
       resourcegroups/<resourcegroup-name>/workspaces/<workspace-name>/
       datastores/<datastore-name>/paths/<mltable-path-on-datastore>/')

   # load mltable from azureml data asset uri
   from mltable import load
   tbl = load(
         'azureml://subscriptions/<subscription-id>/
         resourcegroups/<resourcegroup-name>/providers/Microsoft.MachineLearningServices/
         workspaces/<workspace-name>/data/<data-asset-name>/versions/<data-asset-version>/')

   # load mltable from azureml data asset short uri
   from mltable import load
   from azure.ai.ml import MLClient
   from azure.identity import DefaultAzureCredential
   credential = DefaultAzureCredential()
   ml_client = MLClient(credential, <subscription_id>, <resourcegroup-name>, <workspace-name>)
   tbl = load('azureml:<data-asset-name>:<version>', ml_client=ml_client)