ALTER TABLE REPLACE COLUMNS
Elimina todas las columnas existentes de una tabla creada con LazySimpleSerDe y las reemplaza con el conjunto de columnas especificado. Cuando se utiliza la sintaxis PARTITION
opcional, actualiza los metadatos de la partición. También puede utilizar ALTER TABLE REPLACE
COLUMNS
para eliminar columnas al especificar solo las columnas que desea conservar.
Sinopsis
ALTER TABLE table_name
[PARTITION
(partition_col1_name = partition_col1_value
[,partition_col2_name = partition_col2_value][,...])]
REPLACE COLUMNS (col_name data_type [, col_name data_type, ...])
Parámetros
- PARTITION (partition_col_name = partition_col_value [,...])
-
Especifica una partición con las combinaciones de nombre y valor de columna que especifica. Escriba
partition_col_value
entre comillas solo si el tipo de datos de la columna es una cadena. - REPLACE COLUMNS (col_name data_type [,col_name data_type,...])
-
Reemplaza las columnas existentes por los nombres de columna y los tipos de datos especificados.
Notas
-
Para ver el cambio de las columnas de la tabla en el panel de navegación del Editor de consultas de Athena después de ejecutar
ALTER TABLE REPLACE COLUMNS
, es posible que tenga que actualizar manualmente la lista de tablas en el editor y volver a expandirla. -
ALTER TABLE REPLACE COLUMNS
no funciona para columnas con el tipo de datosdate
. Para solucionar este problema, utilice el tipo de datostimestamp
en la tabla en su lugar. -
Tenga en cuenta que, incluso si está reemplazando una sola columna, la sintaxis debe ser
ALTER TABLE
, con columns (columnas) en plural. Debe especificar no solo la columna que desea reemplazar, sino también las columnas que desea conservar; de lo contrario, se eliminarán las columnas que no especifique. Esta sintaxis y este comportamiento se derivan del DDL de Apache Hive. Como referencia, consulte Agregar o reemplazar columnastable-name
REPLACE COLUMNSen la documentación de Apache.
Ejemplo
En el siguiente ejemplo, la tabla names_cities
, que se creó con LazySimpleSerDe, tiene tres columnas denominadas col1
, col2
y col3
. Todas las columnas son de tipo string
. Para mostrar las columnas de la tabla, el siguiente comando utiliza la instrucción SHOW COLUMNS.
SHOW COLUMNS IN names_cities
Resultado de la consulta:
col1 col2 col3
El siguiente comando ALTER TABLE REPLACE COLUMNS
reemplaza los nombres de las columnas por first_name
, last_name
y city
. Los datos de origen subyacentes no se ven afectados.
ALTER TABLE names_cities REPLACE COLUMNS (first_name string, last_name string, city string)
Para probar el resultado, SHOW COLUMNS
se ejecuta de nuevo.
SHOW COLUMNS IN names_cities
Resultado de la consulta:
first_name last_name city
Otra forma de mostrar los nuevos nombres de las columnas es obtener una vista previa de la tabla en el Editor de consultas de Athena o ejecutar su propia consulta SELECT
.