具有功能的Hive变量替换

时间:2013-11-04 19:00:41

标签: hadoop hive

我正在尝试在Hive中使用以下内容

设置TODAY =“2013-11-04”; //这个有用吗

SET TODAY = to_date(from_unixtime(unix_timestamp())); //这不是..

设置今天; TODAY = TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

SET TODAY = to_date(from_unixtime(unix_timestamp()));

这在Hive中不可用。 你能做的是

select  concat ('set TODAY=',to_date(from_unixtime(unix_timestamp())),'\;') from testTableName limit 1 >>/path/to/HQL/file/fileName.sql

现在在 fileName.sql 文件中,您将看到

set TODAY=2013-11-05;

在运行其他相关查询之前,需要加载文件 fileName.sql 。你可以做到这一点:

hive -f hiveQueries.sql

您的文件 hiveQueries.sql 应包含以下内容:

    use testDB;
    source /path/to/HQL/file/fileName.sql;
    select * from testTable where someColumn=${hiveconf:TODAY};

希望这会有所帮助.. :)