将日期函数设置为变量并在直线和 hql 文件(配置单元)中使用

Set date function as variable and use in beeline and hql file (hive)

谁能告诉我如何解决这个问题。

我想使用 from_unixtime(unix_timestamp() - 86400, 'yyyyMMdd) 作为变量的值,并在存储在 hql 文件中的查询的 where 子句中使用它。我试过:

beeline --hiveconf date=from_unixtime(unix_timestamp(), 'yyyyMMdd) -f path/file.hql (in .hql file: WHERE date <= '${hiveconf:date}';)

由于日期功能,它不起作用。有没有办法先在某些脚本中获取日期值,然后将其与 hql 文件一起使用?我只看到了 hive cli 的例子,但没有看到 beeline,我尝试了一些不同的方法,但无法让它工作。真的很感激一些帮助。该查询适用于硬编码日期。

谢谢!

通过使用 unix 日期函数,您可以将日期转换为所需格式,然后传递给 hive 变量。以下是您可以使用的示例命令:

cur_date=`date +%Y%m%d`
beeline --hiveconf date=${cur_date} -f path/file.hql

然后在您的配置单元查询中,只需在需要的地方使用 ${date}。

希望对您有所帮助