需要在我现有的配置单元表中添加额外的日期列,以便它能够 系统当天的当前日期
hive (hivejobs)>
select * from my_current_Table;
OK
name age
Aditya 2
Aditya 7
我想在此处添加日期列,以便我一添加列即可获取当天的当前系统日期。我认为,解决方法是将两个表与当前系统日期的其他表连接起来。
下面是我的代码和思考过程。
alter table my_current_Table add columns( todays_date current_date());
这给了我一个错误,我找不到实际的方法
请帮助。
预期产量
hive (hivejobs)>
select * from my_current_Table;
OK
name age todays_date
Aditya 2 2019-02-08 13:21:50
Aditya 7 2019-02-08 13:21:50
答案 0 :(得分:1)
您不能在Hive表中定义计算列。
如果您想始终查询今天的日期,请在选择项中使用find . -name *log.2017* -type f -exec stat -c "%s" {} \; | paste -sd+ | bc
函数:
current_timestamp
如果要添加列并存储插入记录的日期,请将列添加到表中并从表中重新加载,例如:
select t.*,
date_format(current_timestamp,'yyyyMMdd HH:mm:ss') as todays_date
from my_current_Table t;
答案 1 :(得分:0)
以下是相同的步骤,
创建表my_current_Table_temp(名称字符串,age int);
姓名|年龄
Aditya | 2
Aditya | 7
创建表my_current_Table(名称字符串,年龄tinyint,todays_date 字符串);
插入覆盖表my_current_Table选择名称,年龄, FROM_UNIXTIME(UNIX_TIMESTAMP(),'dd / MM / YYYY HH:mm')来自 my_current_Table_temp;