我试图将一袋tupples转换成一个tupple:
grunt> describe B;
B: {Comment: {tuple_of_tokens: (token: chararray)}}
grunt> dump B;
({(10),(123),(1234)})
我想从B获得(10,123,1234)。我已经尝试过使用FLATTEN但是这为包中的每个tupple提供了一个新的线,这不是我想要的。 有没有办法在不进入UDF的情况下进行此转换?
提前致谢!
答案 0 :(得分:1)
BagToTuple()
函数已在piggybank中可用,您只需下载pig-0.11.0.jar
并将其设置在类路径中。为此,您无需编写任何UDF代码。
从此链接下载jar:
http://www.java2s.com/Code/Jar/p/Downloadpig0110jar.htm
<强>参考:强>
https://pig.apache.org/docs/r0.12.0/api/org/apache/pig/builtin/BagToTuple.html
示例:强>
的 input.txt中强>
{(10),(123),(1234)}
{(4),(5)}
<强> Pigscript:强>
A= LOAD 'input.txt' USING PigStorage() AS (b:{t:(f1)});
B = FOREACH A GENERATE FLATTEN(BagToTuple(b));
DUMP B;
<强>输出:强>
(10,123,1234)
(4,5)