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,应该可以。
我是 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,应该可以。