apache pig条件foreach生成

yhqotfr8  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(351)

我试图实现一个条件foreach generate,其中一列数据根据输入数据而变化。
例如,假设我在别名a中有以下数据:

dump A;
(George, Films)
(Martin, Books)

如果名称以g开头,我想存储y。从文档中我知道有一个条件算术运算,但我找不到方法来做“从x开始”的事情。我想应该是这样的,其中#####################。

B = FOREACH A GENERATE (##### ? "Y":"N");
mrphzbgm

mrphzbgm1#

您可以在中应用自定义项 GENERATE :

B = FOREACH A GENERATE MyUdf(name);

哪里 MyUdf 是一个函数,您编写它来执行您想要的逻辑。我不知道没有自定义项怎么做。

bnlyeluc

bnlyeluc2#

你在找子串函数。像这样使用:

b = foreach a generate $0.., (SUBSTRING($0,0,1)=='G'?'y':'n');

请在此处阅读更多信息
https://pig.apache.org/docs/r0.9.1/func.html#substring
它会给你

(George,Films,y)
(Martin,Books,n)

相关问题