☆☆☆★☆☆☆

唯有努力才能活成自己想要活成的样子

导航

非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的特殊字符转义规则

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

 

posted on 2021-09-14 11:12  Yr-Zhang  阅读(1765)  评论(0编辑  收藏  举报