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

时间:2016-02-26 22:33:44

标签: hive timestamp hiveql alter-table

我是Hive的新手。 我在Hive中有一个表,其中列中包含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)".

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

1 个答案:

答案 0 :(得分:1)

因为正确的语法是:

ALTER TABLE name CHANGE column_name new_name new_type

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

尝试使用CTAS查询创建新表,它应该可以工作。