袋子结构:
emp = LOAD '...../emp.csv' using PigStorage(',') AS
(ename:chararray,id:int,job:chararray,sal:double)
这个包里有员工的详细资料。我想根据工作划分数据。
Bag = split emp into mngr if job == 'MANAGER';
这不是工作和给予 Error 1200.
如果我再加上一个条件, for ex.- sal10k if sal<10000
,那么它就开始工作了。但为什么不只一个 chararray
?
我是hadoopPig新手。基本知识不多。请帮忙。
2条答案
按热度按时间ao218c7q1#
请找出以下问题的解决方案,并提供有关拆分运算符的基本说明:
拆分运算符用于将一个关系拆分为两个新关系。因此,您需要同时考虑这两个条件,例如if和else:例如:if(something matches)然后建立关系1,if(not)(something matches)然后建立另一个关系在pig中没有else关键字)。
拆分操作是独立的操作,这意味着您不能将拆分操作存储在关系中:
示例:bag=split emp into mngr if job=='manager';//这是错误的。
不能用关系表示拆分操作。它将在grunt shell或脚本上独立执行,如下所示:
以下是一个示例数据集和输出,供您参考:**
数据集
**
脚本:
输出:
aiqt4smr2#
我认为你用分裂运算符是错误的。来自doc:将别名拆分为alias if expression,alias if expression[,alias if expression…][,alias otherwise];
所以不要在一开始就使用这个部件“bag=”。