如何从Pig的STRSPLIT函数中提取第一个元素?

时间:2015-03-13 20:55:08

标签: apache-pig

如何从pig的STRSPLIT函数的结果中访问第一个元素?我的猪命令如下所示。

A = FOREACH mydata GENERATE STRSPLIT(myfield,'.',2) as myfield

" myfield"的价值看起来像这样" john.doe",所以STRSPLIT应该返回(" john"," doe"),但我只想要第一个元素(" john"在这种情况下)作为输出的一部分返回。

1 个答案:

答案 0 :(得分:2)

基本上STRSPLIT总是根据您传递的分隔符拆分整个字符串,而您无法控制在同一行中单独过滤第一个元素。一个选项可能是

A = FOREACH mydata GENERATE FLATTEN(STRSPLIT(myfield,'\\.',2)) as myfield;
B = FOREACH A GENERATE myfield;
DUMP B;

STRSPLIT中,第二个参数是基于正则表达式的分隔符,因此您无法直接使用“。”作为分隔符,你需要用双反斜杠来逃避它。

在关系B中,我们仅投影myfield,因此所有其他字段都将被丢弃,最后您将获得john作为输出。