我正在尝试将一袋元组转换为单个元组:
grunt> describe B;
B: {Comment: {tuple_of_tokens: (token: chararray)}}
grunt> dump B;
({(10),(123),(1234)})
我想从 B 得到 (10,123,1234)。我试过使用 FLATTEN 但这为包中的每个元组提供了一个新行,这不是我想要的。 有没有办法在不使用 UDF 的情况下进行这种转换?
提前致谢!
最佳答案
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
示例:
输入.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)
关于hadoop - Apache pig : Convert bag of tupple to single tupple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089673/