Hive- 更改列值并插入新值代替 table 中的旧列值

Hive- alter a column values and insert new values in place of old column values in the table

我是 Hive 的新手。 我在 Hive 中有一个 table,列中有 Unix 时间戳值。我正在尝试使用正常时间戳值更改列值。

这个我试过了。我能够将 unix 时间戳值转换为正常时间戳值。

"SELECT from_unixtime(cast(ts as bigint)) FROM june11http" 

Results
--------

2010-06-10 20:01:07

2010-06-10 20:01:10

2010-06-10 20:01:12

2010-06-10 20:01:14

2010-06-10 20:01:10

2010-06-10 20:01:15

.......

现在我想用上面的值替换 'ts' 列中的原始值。

我尝试了以下查询:

"ALTER TABLE june11http CHANGE ts  ts from_unixtime(cast(ts as bigint)".

我看到语法错误。任何人都可以建议这样做的方法吗?

因为正确的语法是:

ALTER TABLE name CHANGE column_name new_name new_type

您应该指定 new_type 而不是执行数据转换。

尝试使用 CTAS 查询创建新的 table,应该可以。