bash - bash脚本中的直线查询

标签 bash hadoop hive

下面是简单的工作直线查询;当我放入脚本时它会运行,但我想为路径放置一个 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/

相关文章:

linux - VIM 中的一些 bash 命令将输出发送到 bash 而不是 VIM

hadoop - 增量 MapReduce 实现(除了 CouchDB,最好)

hadoop - 多列的百分位数

hadoop - 使用带有 kerberos 的配置单元 Metastore 服务器的 oozie 配置单元操作

regex - Sed 用文件内容替换模式

json - 从 json 获取字段并分配给 bash 脚本中的变量?

hadoop - 无法在本地主机浏览 HDFS 中查看日志文件

java - 我可以在Hadoop上运行仅具有映射器类的Java源代码(没有Reducer类的源代码)吗?

Gradle shadowJar 删除所需的 SQL 驱动程序

arrays - 使用循环的输出填充多个数组