在Hive插入中嵌入当前日期

时间:2015-09-16 16:23:46

标签: hive hiveql hdinsight

我正在尝试使用以下脚本将当前日期转换为Hive数据库(在HDInsight群集上运行的版本0.13)

SET curdt = from_unixtime(unix_timestamp()); 

DROP TABLE IF EXISTS curtime_test; 

CREATE TABLE curtime_test (
    dateEntered STRING
);

INSERT INTO TABLE curtime_test 
SELECT  '${hivevar:curdt}' FROM hivesampletable limit 3;

SELECT * FROM curtime_test;

请注意,我想为所有插入的记录设置相同的插入日期,这是一个玩具示例,但我想要使用它的真实插入记录有数百万条记录要插入。我上面尝试的这个版本只是将字符串'$ {hivevar:curdt}'插入到数据库中,这不是我想要的:

${hivevar:curdt}
${hivevar:curdt}
${hivevar:curdt}

由于字符串中的空格,省略引号会导致插入错误。我怎么能这样做?

更新 使用行

SELECT  ${hiveconf:curdt} FROM hivesampletable limit 3;

根据Charlie Haley的评论(我混淆了$ {hivevar}和$ {hiveconf}),给了我想要的结果。如果他把它写成答案,我会把它标记为正确。

1 个答案:

答案 0 :(得分:1)

以下代码示例适合我。这会解决您的问题吗?

DROP TABLE IF EXISTS curtime_test; 

CREATE TABLE curtime_test (
    dateEntered STRING
);

INSERT INTO TABLE curtime_test 
SELECT  unix_timestamp() FROM hivesampletable limit 1;

SELECT * FROM curtime_test;