任何人都可以向我解释如何解决这个问题。
我想使用from_unixtime(unix_timestamp() - 86400,'yyyyMMdd)作为变量的值,并将其用于存储在hql文件中的查询的where子句中。 我试过了:
beeline --hiveconf date = from_unixtime(unix_timestamp(),'yyyyMMdd)-f path / file.hql(在.hql文件中:WHERE date <='$ {hiveconf:date}';)
由于日期功能,它不起作用。 有没有办法首先在某些脚本中获取日期值,然后将其与hql文件一起使用? 我只看过hive cli但没有beeline的例子,我尝试了一些不同的方法,但无法让它工作。 非常感谢一些帮助。 该查询适用于硬编码日期。
谢谢!
而不是使用hive udfs生成日期,使用unix日期函数,以生成hive变量的日期值
@KSNidhin请你告诉我一个例子,我是新来的,会有很大的帮助!
通过使用unix日期函数,您可以将日期转换为所需的格式,然后传递给hive变量。 以下是您可以使用的示例命令:
cur_date=`date +%Y%m%d`
beeline --hiveconf date=${cur_date} -f path/file.hql
然后在您的配置单元查询中,只需使用$ {date}。
希望这可以帮助
谢谢! 如何从该日期格式中减去30天? 我在mac上使用终端我在google上找到的一些命令似乎不起作用:)
你可以参考这个:stackoverflow.com/questions/13533661/
好的谢谢,但代码不工作查询似乎没有采取变量值一些如何:(
哪一个 ? 我提到过的那个? 我刚刚尝试了以下命令并且它有效; today = date +%Y-%m-%d hive -hivevar client_date = $ {today} -f query.hql> $ {today} .tsv
当我将变量直接设置为函数时,我得到了它的工作(beeline --hiveconf date = date +%Y-%m-%d。我的查询有问题LIMIT 10;没有用,但我可以活 现在就这样。现在我必须弄清楚如何减去30天,如果你有直接的答案请告诉我:)
谢谢你的链接!