将具有当前时间戳的列添加到 Hive 中的表

Posted

技术标签:

【中文标题】将具有当前时间戳的列添加到 Hive 中的表【英文标题】:Add a column with the current timestamp to a table in Hive 【发布时间】:2019-07-25 14:28:53 【问题描述】:

我正在尝试将名为 tstamp 的列添加到我创建的表中。该列将以“yyyy-MM-dd”格式填充每一行的当前时间戳

我最初使用以下语句从另一个表 (table1) 创建表:

create location2.table2
as (select *
    from location1.table1
    );

然后我使用 alter table 语句将一个名为 tstamp 的字段添加到 table2 使用代码:

alter table location2.table2
add columns (tstamp date)

我可以看到这已经成功地向 table2 添加了一个名为 tstamp 的列,并将该表的每一行填充为空。我现在正试图将当前日期插入字段 tstamp 的每一行,但我正在努力这样做。我试过使用 insert into 语句:

insert into location2.table2 (tstamp)
values (to_date(current_timestamp()))

但得到错误“插入/值中不支持 TOK_FUNCTION 类型的表达式”。然后我还尝试仅添加一个字符串并将该函数替换为“2019-07-25”。这样做会在我的表中添加一个新行,其中每一列都包含空值,但 tstamp 的值为“2019-07-25”。我现在很困惑,因为我的方法似乎不是解决问题的正确方法,并且不确定从这里去哪里。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

create location2.table2 as (select current_date as tstamp,* from location1.table1);

【讨论】:

以上是关于将具有当前时间戳的列添加到 Hive 中的表的主要内容,如果未能解决你的问题,请参考以下文章

如何从具有动态分区的选择查询中插入 Hive 中的列?

如何将具有自动递增值的列添加到 mySql 数据库的表中?

HIVE JOIN 两个具有不同行数的表给出错误的列值

Hive:无法在具有 100 个或更多分区列的表中插入数据错误:在最大长度为 767 的列“PART_NAME”中

以任意时间戳格式将数据导入 Hive

使用 Hive 查询 Sqoop 到 MySQL