如何在pig拉丁语的foreach中使用filter操作符

5lwkijsr  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(296)

我想用 FILTER foreach中的操作符来过滤我的一些数据,但它抛出了一个错误。我正在使用以下查询:

ctm_pm_v1_stg = LOAD '/datalake/uhc/ei/pi_ara/hive/warehouse/ctm_pm.db/ctm_pm_t1' USING PigStorage ('\u0001') AS (lob:chararray,day_phnno:chararray,eve_phnno:chararray,mbr_name:chararray,hic_no:chararray,contract_no:chararray,ctm_risk_category:chararray);
ctm_pm_v1 = FOREACH ctm_pm_v1_stg {
fdata = FILTER ctm_pm_v1_stg by ctm_risk_category=='High';
GENERATE ctm_risk_category;
};

如果有人对此有什么想法,请帮助我。提前谢谢。

lg40wkob

lg40wkob1#

Nested FOREACH 只适用于包,但您的 relation(ctm_pm_v1_stg) 没有包。要解决此问题,只需删除嵌套零件并仅使用 FILTER stmt .

ctm_pm_v1_stg = LOAD '/datalake/uhc/ei/pi_ara/hive/warehouse/ctm_pm.db/ctm_pm_t1' USING PigStorage ('\u0001') AS (lob:chararray,day_phnno:chararray,eve_phnno:chararray,mbr_name:chararray,hic_no:chararray,contract_no:chararray,ctm_risk_category:chararray);
fdata = FILTER ctm_pm_v1_stg by (ctm_risk_category=='High');
DUMP fdata;

相关问题