下面是简单的工作直线查询;当我放入脚本时它会运行,但我想为路径放置一个 hivevar,我该如何完成这个,因为当我放入我的脚本 .properties
文件时 ='path' 似乎没有工作。我想这些单引号遗漏了一些东西,我似乎无法让它发挥作用。
maxValQuery.hql
WORKING: INSERT OVERWRITE DIRECTORY '/user/tmp/maxVal' select max(${hivevar:MAX_VAL_COL}) from ${hivevar:FACT_TABLE};
WANTED: INSERT OVERWRITE DIRECTORY ${hivevar:PATH_ON_HDFS} select max(${hivevar:MAX_VAL_COL}) from ${hivevar:FACT_TABLE};
脚本.sh
#! /bin/bash
# I want to add --hivevar PATH_ON_HDFS=${maxValPathOnHDFS}
beeline \
-u $hiveServer2 \
--hivevar DATABASE_NAME_ON_HIVE=${dbNameOnHive} \
--hivevar FACT_TABLE=${mainFactTableOnHive} \
--hivevar MAX_VAL_COL=${factTableIncrementalColumn} \
-f ${maxValQueryFile}
script.properties
dbNameOnHive=poc
mainFactTableOnHive=factTable
factTableIncrementalColumn=aTimeColumn
maxValQueryFile=maxValQuery.hql
#maxValPathOnHDFS='/user/tmp/maxVal'
#I believe problem is above with the single quotes, yes I uncomment when i execute :P
最佳答案
从属性文件中删除了单引号并在查询中围绕 hivevar 添加了引号:
#maxValPathOnHDFS=/user/tmp/maxVal
& '${hivevar:PATH_ON_HDFS}'
关于bash - bash脚本中的直线查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38598011/