我试图在 foreach 中使用 FILTER
运算符来过滤我的一些数据,但它抛出了一个错误。我正在使用以下查询:
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;
};
如果有人对此有任何想法,请帮助我。 提前致谢。
最佳答案
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;
关于hadoop - 如何在 pig latin 中的 foreach 中使用过滤器运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29215528/