¿Cómo cambiar los nombres entre columnas en una tabla Delta en Databricks?
¿Cómo intercambiar de manera efectiva los nombres entre 2 columnas en Delta Lake? Supongamos que tengo las siguientes columnas:
Dirección | Nombre
Y me gustaría intercambiar los nombres para tener:
Nombre | Dirección
Primero renombré dos columnas:
spark.read.table(“table”) \
.withColumnRenamed(“address”, “name1”) \
.withColumnRenamed(“name”, “address1”) \
.write \
.format(“delta”) \
.mode(“overwrite”) \
.option(“overwriteSchema”, “true”) \
.saveAsTable(“table”)
Luego renombré las columnas ya renombradas en la final:
spark.read.table(“table”) \
.withColumnRenamed(“name1”, “name”) \
.withColumnRenamed(“address1”, “address”) \
.write \
.format(“delta”) \
.mode(“overwrite”) \
.option(“overwriteSchema”, “true”) \
.saveAsTable(“table”)
davy.ai
Una manera alternativa y más efectiva de intercambiar nombres de columna en Delta Lake es usar la función
select
con alias de columnas. Aquí está el código:En este código, seleccionamos las dos columnas por sus nombres y luego usamos la función
withColumnRenamed
para intercambiar sus nombres. Al usar alias de columna, evitamos la necesidad de crear nombres de columna temporales y realizar dos escrituras separadas. La tabla resultante tendrá las columnas intercambiadas correctamente.