美文网首页hive Python shell大数据
在hive查询中使用变量

在hive查询中使用变量

作者: 赤兔在云端 | 来源:发表于2018-03-08 10:22 被阅读0次
    1.Hive配置属性

    Hive配置属性存储于 hiveconf 命名空间中,该命名空间中的属性是可读写的。在查询语句中插入 '${hiveconf:变量名}',就可以通过 hive -hiveconf来替换变量。例如,查询语句和执行方式如下:

    [root]$cat test.sql    #查看该文件
    SELECT * FROM ${hiveconf:tablename}
    limit ${hiveconf:var_rows};
    [root]$hive -hiveconf tablename='t1' -hiveconf var_rows=10 -f test.sql
    

    需要注意的是:

    • 如果有多个变量,每个变量前都要有参数 -hiveconf
    • 变量赋值等号左右不能有空格(例如var_rows=10不能有空格)
    2.Hive命令行变量

    Hive命令行变量,存储于 hivevar 命名空间中,该命名空间中的变量是可读写的。使用方式和hive配置属性类似,只是在查询语句中插入的是'${hivecar:变量名}',其中命名空间"hivecar:"可以省略。例如:

    [root]$cat test.sql 
    SELECT * FROM ${hivevar:tablename}  #等同于${tablename}
    limit ${hiveconf:var_rows};
    [root]$hive -hivevar tablename='t1' -hiveconf var_rows=10 -f test.sql
    

    因为命令行变量的命名空间是唯一可以省略的,因此:

    • ${hivevar:变量名}等价于${变量名}
    • 除了用hive -hivevar 变量赋值,还可以用hive -d,d是define的简写,例如下面三个执行方式是一样的:
    [root]$hive -hivevar tablename='t1' -hiveconf var_rows=10 -f test.sql
    [root]$hive -define tablename='t1' -hiveconf var_rows=10 -f test.sql
    [root]$hive -d tablename='t1' -hiveconf var_rows=10 -f test.sql
    

    其他替换变量的方法:
    利用shell脚本设置hive查询语句中的变量
    利用Python替换Hive查询语句中的变量

    相关文章

      网友评论

        本文标题:在hive查询中使用变量

        本文链接:https://www.haomeiwen.com/subject/lknjfftx.html