hive的变量传递设置

当在Oozie workflow中执行Hive查询时,遇到Variable substitution depth too large异常。原因是Hive对变量替换的深度有限制,默认为40。通过在Hive查询语句前添加`set hive.variable.substitute.depth=100;`可以提升限制,从而解决问题。然而,Hue在执行Hive查询时使用beeswax,它会预先处理变量,避免了该问题的发生。
摘要由CSDN通过智能技术生成

hive的变量传递设置

今天同事在oozie的workflow中执行一个hive查询,但是直接就报异常:Variable substitution depth too large:40,从网上查询可知,可以确认是由于语句中使用了过多的变量导致,在hive以前的版本中,这个限制是写死的40个,查询Hive的最新的原代码,虽然判断的位置的提示信息已经变化,但是原理一样:

### org.apache.hadoop.hive.ql.parse.VariableSubstitution:

  public String substitute(HiveConf conf, String expr) {
    if (expr == null) {
      return expr;
    }
    if (HiveConf.getBoolVar(conf, ConfVars.HIVEVARIABLESUBSTITUTE)) {
      l4j.debug("Substitution is on: " + expr);
    } else {
      return expr;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值