首页 > 代码库 > 写hive sql和shell脚本时遇到几个蛋疼的问题!
写hive sql和shell脚本时遇到几个蛋疼的问题!
错误一:
Hive的where后不能用字段的别名,
错误二:
hive的groupby中不能用自定义函数,否则报错(用嵌套select代替)
错误三:
执行:$ ./hive_game_operationstatis5.sh时,报错信息如下:
./hive_game_operationstatis5.sh:line 11: [: missing `]' ./hive_game_operationstatis5.sh:line 17: /tmp/statis_activitysourcestatis20141014/statis_activitysourcestatis120141014.txt:No such file or directory ./hive_game_operationstatis5.sh:line 36:/tmp/statis_activitysourcestatis20141014/statis_activitysourcestatis220141014.txt:No such file or directory ERROR 2 (HY000) atline 1: File'/tmp/statis_activitysourcestatis20141014/statis_activitysourcestatis120141014.txt'not found (Errcode: 2) ERROR 2 (HY000) atline 1: File'/tmp/statis_activitysourcestatis20141014/statis_activitysourcestatis220141014.txt'not found (Errcode: 2)
错误分析:
由于11行的创建目录代码没起作用,所以导致后边一系列找不到文件路径的错误。
报错时的代码:
if [ ! -d $output] then mkdir -p $output fi<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
修改后的代码:
if [ ! -d $output] then mkdir -p $output fi
看到差别了没??$output与]之间应该有个空格!!
错误四:date不能识别
执行./hive_game_operationstatis6.sh脚本时,报错如下:
./hive_game_operationstatis6.sh:line 12: [: /tmp/statis_suspendedwindowstatisdate: binary operator expected ./hive_game_operationstatis6.sh:line 21: $output/$file_name1: ambiguous redirect ./hive_game_operationstatis6.sh:line 39: $output/$file_name2: ambiguous redirect ./hive_game_operationstatis6.sh:line 56: $output/$file_name3: ambiguous redirect ./hive_game_operationstatis6.sh:line 73: $output/$file_name4: ambiguous redirect ./hive_game_operationstatis6.sh:line 90: $output/$file_name5: ambiguous redirect
分析:
在shell脚本中我是这样写:
output='/tmp/statis_suspendedwindowstatis'$date file_name1='statis_suspendedwindowstatis1'$date'.txt'
错误显示是指调用时”模糊的重定向”!
单从错误提示上看不出个所以然来,请直接看出错代码:
修改之前代码:
date=’date +%Y%m%d’
修改此bug之后代码:
date=`date +%Y%m%d`
大家看到哪里出错了没??哈哈,是的,太坑啦!shell要用键盘上1前边的‘撇’,而不能用双引号那个‘撇’儿。。
如果一个变量后是字符串的话直接用回车左边那个’撇‘就可以,
对于我这个初次接触shell的人,简直头疼到了极点!希望大家不要犯类似的错误。
写hive sql和shell脚本时遇到几个蛋疼的问题!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。