在 Hive 插入中嵌入当前日期

Embedding Current Date in Hive Insert

我正在尝试使用以下脚本将当前日期输入 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}),给出了我想要的结果。如果他把它写下来作为答案我会标记为正确。

以下代码示例适用于我。这是否解决了您的问题?

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;