让我们说我的字符串就像这样的“20136 asjd”。我只想要第一部分 - “20136” - 我希望将此字符串用作group by
以进一步处理。我如何在Pig中实现这一目标?
我正在尝试这个approch:
A = load 'file.txt';
B = group A by strsplit(mystring,' ');
但我只想要那个字符串的第一部分。
答案 0 :(得分:0)
确定。 STRSPLIT生成元组。要将该元组转换为原子,您需要应用FLATTEN。 只需将flatten应用于STRSPLIT函数,然后执行第一部分。
输入:
(20136 asjd)
代码:
A = load 'file.txt' USING PigStorage() as (mystring:chararray);
B = FOREACH A GENERATE FLATTEN(STRSPLIT(mystring,'')) as(a1,a2);
C = GROUP B BY a1:
然后你可以做任何你想做的事情......
只需探索有关STRSPLIT和FLATTEN组合的更多内容,您将获得更多...
希望这会有所帮助!!