如何为hiveQL查询设置参数

时间:2018-07-06 09:56:59

标签: hadoop hive hdfs hiveql

我正在运行以下具有以下内容的hiveql文件

set mapred.output.compress=true;
set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;

INSERT OVERWRITE DIRECTORY '${hivevar:hadoop_temp_output_dir}${hivevar:filepattern}${hivevar:business_date}'  select data,'~','~${hivevar:src_sys_file_nm}~${hivevar:outbound_file_nm}~${hivevar:prd_typ_cd}~${hivevar:brnch_cd}~${hivevar:orig_src_sys}~${hivevar:my_src_sys}~${hivevar:extract_ts}~$hivevar:business_date}' from mydb.${hivevar:data_table} where src_sys_file_nm=${hivevar:src_sys_file_nm} and business_date=${hivevar:business_date};

在此示例中,除了select查询中的data列之外,其他所有内容都在参数变量中。另外,我只是附加一些像这样的字符串-- '~${hivevar:src_sys_file_nm}~${hivevar:outbound_file_nm}~${hivevar:prd_typ_cd}~${hivevar:brnch_cd}~${hivevar:orig_src_sys}~${hivevar:my_src_sys}~${hivevar:extract_ts}~$hivevar:business_date}'--

这些不是表格列;它们是我传递的一些字符串。该查询在Hive QL之外非常有效。当我执行上述HQL脚本时,出现以下错误:

  

无效的表别名或列引用“ somestring” :(可能的列名称为:data,business_date,src_sys_file_nm,prd_typ_cd)

注意:business_date,src_sys_file_nm和prd_typ_cd是分区。

如果能提出/指出我在这里犯的错误,那将是很棒的事情

0 个答案:

没有答案