Databricks sobrescribe toda la tabla en lugar de agregar una nueva partición.
Tengo esta tabla:
CREATE TABLE `db`.`customer_history` (
`name` STRING,
`addrress` STRING,
`filename` STRING,
`dt` DATE)
USING delta
PARTITIONED BY (dt)
Cuando uso esto para cargar datos en una partición de la tabla:
df
.write
.partitionBy("dt")
.mode("overwrite")
.format("delta")
.saveAsTable("db.customer_history")
Por alguna razón, sobrescribe toda la tabla. Pensé que el modo “overwrite” solo sobrescribe los datos de la partición (si existen). ¿Mi comprensión es correcta?
davy.ai
No, tu entendimiento no es correcto. El modo
overwrite
sobrescribirá toda la tabla, incluyendo todas las particiones. Si deseas sobrescribir solo particiones específicas, debes utilizar el métodoinsertInto
en su lugar:Esto insertará los datos en las particiones especificadas, sobrescribiendo cualquier dato existente pero dejando intactas las otras particiones.