es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo registrar una versión específica de una tabla Delta en Azure Machine Learning Studio desde Azure ADLS Gen 1?

Creé una Tabla Delta en ADLS Gen 1 con el siguiente código en Databricks:

df.write.format("delta").mode("overwrite").saveAsTable("db.my_tbl", path ='adl://organizacion.azuredatalakestore.net/folder_name/my_data')

A veces, vuelvo a ejecutar el código anterior para generar una nueva versión de la tabla ‘my_tbl’. Como es habitual con las tablas delta, se construye un historial y debe optimizarse y vaciarse regularmente. Ahora, a menudo vuelvo a entrenar un modelo de ML en Azure Machine Learning Studio y me pregunto si es posible registrar una versión específica de la tabla delta.

Actualmente, incluso después de vaciarla, todos mis archivos delta (incluyendo versiones antiguas) se registran en Azure ML Studio al leer los archivos parquet de la carpeta ‘my_data’! Esto se debe a que no puedo reducir el período de retención de la tabla delta por debajo de 168 horas, excepto desactivando ‘spark.databricks.delta.retentionDurationCheck.enabled’. No quiero desactivarlo.

Registro mi conjunto de datos a través de la interfaz de ML Studio como un conjunto de datos de archivo (no un conjunto de datos tabulares). Este registro se ve así:

[aquí hay una imagen anexada]

En este momento, solo veo la opción de crear una copia de ‘my_data’ y leerla en su lugar. ¿Hay otra manera? ¿Sabe si puedo especificar algo en el camino para señalar a los archivos .parquet “correctos” (que pertenecen a una versión específica de la tabla delta)?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Python, Azure, Apache-spark, registro y retención, comprendo que las tablas Delta crean historial y requieren una optimización y limpieza regulares. En este caso, el usuario está volviendo a ejecutar el código para generar una nueva versión de la tabla Delta my_tbl en ADLS Gen 1. Sin embargo, al registrar el conjunto de datos a través de la interfaz del conjunto de datos de archivo de Azure ML Studio, se registran todos los archivos delta, incluyendo las versiones anteriores, a pesar de la limpieza.

    Para solucionar este problema, es necesario especificar la ruta exacta a los archivos Parquet pertenecientes a la versión deseada de la tabla Delta al registrar el conjunto de datos en Azure ML Studio. Esto se puede lograr utilizando el parámetro versionAsOf en el siguiente formato:

    path = 'adl://organisation.azuredatalakestore.net/folder_name/my_data/_delta_log/[TIMESTAMP]_c[CHECKPOINT]_00000.parquet'

    donde [TIMESTAMP] es el timestamp deseado para la versión y [CHECKPOINT] es la versión de checkpoint asociada con ese timestamp.

    Al especificar la ruta de esta manera e incluir el timestamp y la versión de checkpoint deseada, es posible registrar una versión específica de la tabla Delta en Azure ML Studio sin tener que crear una copia de my_data.

Comments are closed.