hadoop - Apache pig : Convert bag of tupple to single tupple

标签 hadoop apache-pig

我正在尝试将一袋元组转换为单个元组:

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/

相关文章:

hadoop - 在 Hadoop 2 上的 pig 15 上运行时出现嵌入式 pig 错误

apache-pig - 使用PigLatin删除重复项

compression - Hadoop 0.20.205 Job(而非JobConf)Bzip2压缩

hadoop - Apache Nutch 2.3.1,增加Reducer的内存

hadoop - Mapreduce POJO 映射

java - 如何像 oracle/mysql in(row1,row2,row3...) 一样按行解析 HBase 查询数据

hadoop - pig - 试图避免交叉

hadoop - 如何在 hdfs 命令上计算文件中的行数?

hadoop - 如何设置Pig STORE命令的输出目录?

java - Pig如何实例化UDF对象