Si eres nuevo en Delta Lake, este es el primer post que debes ejecutar. Se enfoca en lo mínimo que haces en trabajo real: crear una tabla Delta, leerla y sobrescribirla de forma segura. Referencia oficial: Delta Lake.

Descargas al final: ir a Descargas.

En pocas palabras

  • Una tabla Delta es archivos + registro de transacciones.
  • Lees/escribes Delta como una tabla normal, pero con confiabilidad.
  • Este flujo te deja listo para empezar.

Ejecuta tú mismo

  • Spark local (Docker): ruta principal de este blog.
  • Databricks Free Edition: alternativa rápida si no quieres Docker.
1
docker compose up

Links:


Setup mínimo

Generaremos un dataset pequeño, lo escribimos como Delta y luego lo leemos. Usamos spark.range para no depender de datos externos. Ref: Spark range.

1
2
3
4
5
6
from pyspark.sql import functions as F

df = (
    spark.range(0, 100_000)
         .withColumn("group", (F.col("id") % 10).cast("int"))
)

Crear la tabla Delta

Aquí persistimos el DataFrame como Delta en una ruta local. Ref: DataFrameWriter.

1
2
3
delta_path = "/tmp/delta/table_101"

df.write.format("delta").mode("overwrite").save(delta_path)

Leerla de nuevo

Leemos el mismo path para validar que quedó bien. Ref: DataFrameReader.

1
2
read_back = spark.read.format("delta").load(delta_path)
read_back.groupBy("group").count().show()

Salida esperada (ejemplo):

+-----+-----+
|group|count|
+-----+-----+
|    0|10000|
|    1|10000|
|    2|10000|
...

Sobrescribir de forma segura (mismo schema)

Reescribimos con el mismo esquema para simular una actualización.

1
2
df_filtered = df.filter("group < 5")
df_filtered.write.format("delta").mode("overwrite").save(delta_path)

Salida esperada: No verás salida directa, pero el conteo debe bajar cuando vuelvas a leer.


Qué verificar

  • La tabla se lee sin errores.
  • Los conteos cambian después del overwrite.
  • La carpeta contiene _delta_log.

Notas de práctica

  • Usa format("delta") explícito para evitar ambigüedad.
  • Empieza con una ruta local para inspeccionar archivos.
  • Mantén rutas simples para principiantes.

Descargas

Si no quieres copiar código, descarga el notebook o el .py.