寫hive sql和shell指令碼時遇到幾個蛋疼的問題!

來源:互聯網
上載者:User

標籤:hive   shell   hadoop   mapreduce   mahout   

錯誤一:

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 directoryERROR 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 $outputfi<span style="font-family: Arial, Helvetica, sans-serif;"> </span>

修改後的代碼:

if [ ! -d $output]then        mkdir -p $outputfi

看到差別了沒??$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'$datefile_name1='statis_suspendedwindowstatis1'$date'.txt'

錯誤顯示是指調用時”模糊的重新導向”!

 

單從錯誤提示上看不出個所以然來,請直接看出錯代碼:

 

修改之前代碼:

date=’date +%Y%m%d’

修改此bug之後代碼:

date=`date +%Y%m%d`

 

大家看到哪裡出錯了沒??哈哈,是的,太坑啦!shell要用鍵盤上1前邊的‘撇’,而不能用雙引號那個‘撇’兒。。

如果一個變數後是字串的話直接用斷行符號左邊那個’撇‘就可以,

對於我這個初次接觸shell的人,簡直頭疼到了極點!希望大家不要犯類似的錯誤。


寫hive sql和shell指令碼時遇到幾個蛋疼的問題!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.