zoukankan      html  css  js  c++  java
  • 非Hive Metastore Server节点执行load命令时出现“cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in switch database statement”

    我的脚本如下

    dbname=bigdata
    month=$(date -d 0"month ago"${date} +%Y%m)
    #删除分区及数据
    ssh root@bda1node06 "hive -e 'use "${dbname}";ALTER TABLE tablename DROP IF EXISTS PARTITION (pt="${month}")'"
    #创建分区
    ssh root@bda1node06 "hive -e 'use "${dbname}";ALTER TABLE tablename ADD PARTITION (pt="${month}")'"
    #把HDFS上的数导入到HIve表中
    ssh root@bda1node06 "hive -e "use ${dbname};load data inpath '/data/roaddist/*' overwrite into table tablename partition(pt=${month})""

    原因分析:使用双引号进行包括,则"hive -e"会认为后面的内容作为一个单独的参数传给hive 否则会解析成为多个参数造成错误。

    liunx的特殊字符转义规则

    传递参数全部使用""引号,参数内有"和`,需要用转义.除此之外还有^、] 、[ 等 

  • 相关阅读:
    python 函数(二)
    python 函数(一)
    python 文件操作
    python标准数据类型 Bytes
    购物车代码
    关于python数据类型的一些举例
    栈的应用实例
    python 数据类型
    python相关的编码,运算
    Oracle篇 之 查询行及概念
  • 原文地址:https://www.cnblogs.com/zyanrong/p/15266664.html
Copyright © 2011-2022 走看看