我的PIG查询如下:
emp = LOAD 'hdfs://master:9000/hrms/DimEmployee' AS (EmployeeID,OrganizationID,EmploymentType);
grouped = group emp by (OrganizationID, EmploymentType);
AggEmploymentType = FOREACH grouped GENERATE group.OrganizationID, group.EmploymentType,COUNT(emp.EmployeeID) as cnt;
DUMP AggEmploymentType;
下面给出了上述猪查询的逐步描述。
执行上述查询后,猪壳说,成功读取100115条记录。
在Pig查询成功执行后,我遇到了三个问题:
请尽快解决我的问题。我的猪,hadoop项目取决于你的快速反应。由于上述问题,我在过去5天内被击中
答案 0 :(得分:0)
我认为您加载额外的记录并且您也正在访问不存在的字段错误并不是巧合。当您加载并且没有足够的列时,会显示不存在的字段错误。例如,如果您看到如下所示的行,则可能会出现错误:hello,world
当您需要3列时。
建议:另外需要注意的是COUNT(x)
不计算null项。尝试使用COUNT(emp.EmployeeID)
替换COUNT_STAR(emp.EmployeeID)
。 COUNT_STAR
将空值考虑在内。
建议: Pig在没有字段时会做的一件事就是将空值放入其中。我建议你在GROUP
之前添加一个过滤器,删除带有空值的记录(也可能是“坏”记录)。
emp = FILTER emp BY EmployeeID IS NOT NULL AND
OrganizationID IS NOT NULL AND
EmploymentType IS NOT NULL;