更改 Hive 多列

Vin*_*ran 4 hadoop hive alter

我们如何更改 Hive 中多列的数据类型?

CREATE TABLE test_change (a int, b int, c int);

ALTER TABLE test_change CHANGE a a string b b doube c c decimal(11,2);
Run Code Online (Sandbox Code Playgroud)

And*_*rea 5

据我所知,你不能。在 Hive 文档中,您可以找到以下内容:

ALTER TABLE 表名 [PARTITION 分区规范] 更改 [列] col_old_name col_new_name 列类型 [COMMENT col_comment] [FIRST|AFTER 列名] [CASCADE|RESTRICT];

该命令将允许用户更改列的名称、数据类型、注释或位置,或它们的任意组合。PARTITION 子句在 Hive 0.14.0 及更高版本中可用;有关用法,请参阅升级 Hive 0.13.0 之前的小数列。Hive 0.13 的补丁也可用(请参阅 HIVE-7971)。

该文档正在谈论“一列”。另一种方法是编写多个查询,每个查询对应您必须更改的每种数据类型。

参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL