¿Hay alguna forma de alterar el tipo de columna en la tabla de la colmena?
El esquema actual es:
hive> describe tableA;
OK
id int
ts timestamp
Quiero cambiar la columna ts
para que sea BIGINT
sin dejar caer la tabla y volver a crear. Es posible?
3 answers
Encontró la solución:
ALTER TABLE tableA CHANGE ts ts BIGINT AFTER id;
Vea esto para detalles completos: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterColumn
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-05 22:02:24
ALTER TABLE table_name CHANGE col_name col_name newType
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-04 20:11:52
Normalmente es simple cambiar/modificar la tabla de exesting usando esta sintaxis en el subárbol.
ALTER TABLE table_name CHANGE old_col_name new_col_name new_data_type
Aquí puede cambiar el nombre de la columna y el tipo de datos a la vez. Si no desea cambiar col_name simplemente hace old_col_name y new_col_name son iguales. Ok.
Ven a tu problema. Si desea cambiar la columna ts para ser BIGINT.It significa tipo de columna que está cambiando. así que simplemente ejecute esta consulta.
ALTER TABLE tableA CHANGE ts ts BIGINT;
Aquí ts y ts son iguales, significa que no está cambiando el nombre de la columna, pero cambiar el tipo de columna; si desea cambiar el nombre de la columna también simplemente ejecútelo.
ALTER TABLE tableA CHANGE ts new_col BIGINT;
Ahora ejecuta
hive> describe tableA; OK id int new_col bigint
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-18 09:17:58