Escritura de los Datos Procesados en una Tabla
Desliza para mostrar el menú
La escritura de datos es el proceso de mover un DataFrame desde la memoria temporal del clúster hacia un almacenamiento permanente en el Catálogo. Al utilizar el método saveAsTable(), se garantiza que los resultados limpiados y agregados se conserven y sean accesibles para otros usuarios y herramientas.
Todo lo realizado hasta ahora ha sido "en memoria". Si se apagara el clúster en este momento, los DataFrames transformados desaparecerían. Para hacer que el trabajo sea permanente, es necesario escribir los datos de vuelta en el Lakehouse. En Databricks, la forma estándar de hacerlo es guardando el DataFrame como una Delta Table.
Sintaxis de saveAsTable()
Para guardar el trabajo, se encadena el método write al DataFrame. El enfoque más directo es:
# Save the 'summary_df' we created earlier as a permanent table
summary_df.write.mode("overwrite").saveAsTable("workspace.default.diamonds_summary”)
- write: accede a la interfaz de escritura de DataFrame;
- mode("overwrite"): indica a Databricks qué hacer si ya existe una tabla con ese nombre. "Overwrite" reemplaza los datos antiguos por los nuevos. Otras opciones incluyen "append" (para agregar nuevas filas al final de la tabla existente);
- saveAsTable: especifica el nombre de tres partes (
catalog.schema.table) donde se almacenarán los datos.
Delta Lake: El formato predeterminado
Cuando se utiliza saveAsTable, Databricks guarda automáticamente los datos en formato Delta. Como se explicó en la Sección 1, Delta Lake proporciona confiabilidad. Garantiza que, incluso si el clúster falla en medio de una operación de "escritura", la tabla no se corromperá. También permite "Time Travel", lo que significa que se pueden consultar versiones anteriores de la tabla en caso de cometer un error.
Verificación de la escritura en el Catálogo
Una vez que el comando haya finalizado, se debe verificar que los datos se hayan almacenado correctamente:
- Navegar a la pestaña Catálogo en la barra lateral izquierda;
- Profundizar en el catálogo
mainy el esquemadefault; - Buscar el nombre de la nueva tabla (por ejemplo,
regional_summary); - Se puede hacer clic en la tabla para ver su esquema, datos de muestra y metadatos, como la fecha de creación y el autor.
Lectura de la tabla guardada
Una vez que una tabla está en el Catálogo, cualquier usuario autorizado puede acceder a ella sin necesidad de tu notebook. Simplemente puede ejecutar una consulta SQL o utilizar spark.table() para cargarla en su propio entorno:
# In a new notebook, anyone can now access your processed data
new_df = spark.table("main.default.regional_summary")
Mejor práctica: limpieza
Después de guardar los resultados finales en una tabla permanente, es una práctica profesional terminar tu clúster o al menos "Borrar estado". Dado que tus datos ahora están almacenados de forma segura en el Catálogo, ya no es necesario mantener los DataFrames temporales ocupando espacio en la RAM del clúster.
1. ¿Qué "mode" deberías usar si deseas reemplazar una tabla existente con datos completamente nuevos de tu DataFrame?
2. ¿Cuál es el principal beneficio de guardar un DataFrame usando saveAsTable()?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla