pig腳本常見錯誤

1、ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: String index out of range: 36

原因:結尾多了個空格

video_read_allnet = LOAD '/user/hdphailiyang/statistics/kyk_close/video_read_allnet/${date}/p*';
-- `awk XXX ` XXX後面不能有空格
video_read_allnet = STREAM video_read_allnet THROUGH `awk -F'[\t|]' '{print $1"\t"$2"\t"$3}'`;
2、ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing.
   Encountered " <PATH> "book=load "" at line 2, column 1.
   Was expecting one of:
       <EOF> 
       "cat" ...
       "clear" ...
       "fs" ...
       "sh" ...
       "cd" ...
       "cp" ...
       "copyFromLocal" ...
       "copyToLocal" ...
       "dump" ...
       "\\d" ...
       "describe" ...
       "\\de" ...
       "aliases" ...
       "explain" ...
       "\\e" ...
       "help" ...
       "history" ...
       "kill" ...
       "ls" ...
       "mv" ...
       "mkdir" ...
       "pwd" ...
       "quit" ...
       "\\q" ...
       "register" ...
       "rm" ...
       "rmf" ...
       "set" ...
       "illustrate" ...
       "\\i" ...
       "run" ...
       "exec" ...
       "scriptDone" ...
       "" ...
       "" ...
       <EOL> ...
       ";" ...

原因:等號兩邊要留空格

A=LOAD 'XXX'  => A = LOAD 'XXX'
3、ERROR org.apache.pig.Main - ERROR 2997: Encountered IOException. org.apache.pig.tools.parameters.ParseException: Encountered “” at line 1, column 9

我的腳本第一行是這個

SET default_parallel 500;

原因:
用shell腳本調用的時候,-p 參數有空,該參數我前面刪了,但是腳本里沒有去掉對應的 -p參數,所以報錯。

4、Invalid field projection. Projected field [group_res1::pv] does not exist in schema: group:chararray,group_res1:bag{:tuple(uin:chararray,pv:long)}.
group_res1 = GROUP join_res1 BY (uin, docid);

group_res1 = FOREACH group_res1 GENERATE group.$0 AS uin, COUNT($1) AS pv;

uin_max1 = GROUP group_res1 BY uin;

# 這一行報錯
uin_max1 = FOREACH uin_max1 GENERATE FLATTEN(group) AS uin, MAX(group_res1::pv) AS pv;

這裏pv是在group_res1裏的tuple數據結構裏,不能用雙冒號,應該用點號去獲取,修改如下:

uin_max1 = FOREACH uin_max1 GENERATE FLATTEN(group) AS uin, MAX(group_res1.pv) AS pv;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章