2017-10-16 142 views
0

我想在豬中執行以下命令慶典:靠近意外的標記'(」語法錯誤 - 豬,CentOS的

7369,SMITH,CLERK,800.00,null,20 
7499,ALLEN,SALESMAN,1600.00,300.00,30 

腳本

emp_bag = LOAD '/home/training/dvs/emp.csv' using PigStorage(',') AS (eno:int, ename:chararray, job:chararray, sal:int, comm:int, deptno:int); 

並提示以下錯誤:

bash:意外標記附近的語法錯誤`('

請幫忙解決這個問題。

+0

後的樣本數據看起來是正確的 –

+0

這裏是樣本數據 - 7369,SMITH,祕書,800.00,空,20 – Priyanka

+0

我沒有看到共享的示例代碼段的任何問題。 –

回答

0

最有可能的問題是浮點數類型的數據。您需要將第四個和第五個字段的數據類型更改爲從int浮點數。 如果null是一個字符串,那麼你將不得不使用chararray字段來處理它,並用''替換'null'。

emp_bag = LOAD '/home/training/dvs/emp.csv' using PigStorage(',') AS (eno:int, ename:chararray, job:chararray, sal:float, comm:float, deptno:int); 

或者,您可以檢查問題是否是由不指定在這種情況下,默認的數據類型將是字節組架構中的數據類型。

emp_bag = LOAD '/home/training/dvs/emp.csv' using PigStorage(',') 
+0

沒有運氣。嘗試,它沒有工作:(。 有沒有什麼特殊的字符問題? – Priyanka

+0

爲什麼你有一個null在你的文本文件?使用chararray爲這些字段,因爲浮動不能接受'null' –

1

你在bash上運行你的pig命令嗎?

如果是,請先啓動豬控制檯,然後運行。

只需鍵入豬並進入。從emp.csv.The語法

+0

謝謝。 – Priyanka

相關問題