2017-10-16 141 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

相关问题