Hive 在配置单元脚本中指定默认参数值

Hive 在配置单元脚本中指定默认参数值,hive,Hive,我知道可以为配置单元查询/脚本指定如下参数: >hive -e "USE uk_pers_dev;set hive.cli.print.header=true;CREATE TABLE IF NOT EXISTS ${hiveconf:tablename} (mycol int);SELECT * FROM ${hiveconf:tablename};" -hiveconf tablename=mytable; 但是,我想做的是在配置单元脚本中指定一个默认参数值,如果没有从命令行传递任何

我知道可以为配置单元查询/脚本指定如下参数:

>hive -e "USE uk_pers_dev;set hive.cli.print.header=true;CREATE TABLE IF NOT EXISTS ${hiveconf:tablename} (mycol int);SELECT * FROM ${hiveconf:tablename};" -hiveconf tablename=mytable;
但是,我想做的是在配置单元脚本中指定一个默认参数值,如果没有从命令行传递任何值,则应使用该值。有可能吗?

JT

你能用一下吗

设置myvar=“你好,世界”

在您的配置单元脚本中

设置myvar=COALESCE(${hiveconf:myvar},“默认值”)

从MyTable中选择*,其中MyColumn=${hiveconf:myvar}


从MyTable中选择*,其中MyColumn=COALESCE(${hiveconf:myvar},“默认值”)

好的,我有一张叫做机场的桌子

名称:string 国家:字符串 区号int

在蜂房里我喜欢

SET mycol = name;
SELECT ${hiveconf:mycol} from airports;

对我来说很有用。

好吧,把逻辑从蜂巢中拿走

在POSH或cmd文件中

  • 检查
  • 如有需要,请替换
  • 呼叫蜂巢
  • 也许可以把它当作包装纸


    Allan

    Hi Al.尝试过,但没有成功:(这是我脚本中的hql语句:从myTable limit 1中选择“${hiveconf:myvar}”;它返回的结果如下:${hiveconf:myvar}也就是说,没有发生替换。谢谢Al,但这并不能满足我的需要,也就是说,在没有提供其他值的情况下指定默认值。是的,我认为这就是解决方法。REPLACE()是你的朋友。