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.

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?

Tags:  , ,

Answer

  1. Avatar for 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étodo insertInto en su lugar:

    df.write.partitionBy("dt").mode("overwrite").format("delta").insertInto("db.customer_history")
    

    Esto insertará los datos en las particiones especificadas, sobrescribiendo cualquier dato existente pero dejando intactas las otras particiones.

Comments are closed.