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