Hadoop Hcatalog - 如何传递键值对

时间:2014-10-31 17:12:17

标签: hadoop hcatalog

我有一个create table脚本,其中表名将在运行时决定。如何将值传递给sql脚本?

我正在尝试这样的事情

hcat -e "create table ${D:TAB_NAME} (name string)" -DTAB_NAME=person

但我一直都有错误。 我可以获得正确的语法吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

hcat -e 'create table ${hiveconf:TAB_NAME} (name string);' -DTAB_NAME=person2

以下两点需要注意:

  1. 在shell中,默认变量扩展为$,因此在将${D:TAB_NAME}传递给hcat解析器之前,$将扩展为空。因此,要么逃避'',要么使用强引语:hiveconf

  2. 使用D代替{{1}}进行变量替换,因为引擎盖下的hcat仍然使用配置单元来解析命令。