我想创建一个hiveQL脚本,其中第一个语句为“ Create Table ...”。此脚本将由Dev,QA等不同团队使用,所以我想使表名称动态化,即脚本运行时,它将要求插入表名称,并且每个团队都将提供特定的表名称。
答案 0 :(得分:0)
使用hivevar
参数代替脚本中的table_name:
#!/bin/bash
#Set table name
TABLE_NAME=your_schema.your_table
#Or ask user to input table_name
echo "Please input table_name"
read TABLE_NAME
#call your script
hive -hivevar table_name="$TABLE_NAME" -f your_script.hql
然后在your_script.hql
中可以使用变量:
CREATE TABLE ${hivevar:table_name};
或者直接调用提供table_name作为参数的hql脚本:
hive -hivevar table_name="myschema.mytable" -f your_script.hql