【问题标题】:Hive- alter a column values and insert new values in place of old column values in the tableHive-更改列值并插入新值代替表中的旧列值
【发布时间】:2016-06-10 07:59:40
【问题描述】:

我是 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)".

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

【问题讨论】:

    标签: hive timestamp hiveql alter-table


    【解决方案1】:

    因为正确的语法是:

    ALTER TABLE name CHANGE column_name new_name new_type
    

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 2015-07-16
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多