hadoop - 如何在 pig latin 中的 foreach 中使用过滤器运算符

标签 hadoop foreach filter apache-pig

我试图在 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/

相关文章:

字符串中每个字母的 XSLT

php - 如何将大量字符串与另一个字符串的开头进行比较?

javascript - 如何从包含 "X": "Y", 的输出中过滤信息

scala - 列出文件 scala emr hdfs(缺少 csv 文件)

hadoop - Nodemanger在Hadoop 2.6.0中被杀死

php - 如何在 smarty 模板中访问数组的键和值?

arrays - 过滤对象数组中的两个值

hadoop - 配置单元 pyspark 日期比较

hadoop - Impala 找不到 com.mysql.jdbc.Driver

python - 考虑到强制重定向的多组规则?