Hadoop 将行值合并到列

Hadoop 将行值合并到列,hadoop,apache-pig,Hadoop,Apache Pig,我有这样的数据 DUMP A; (2013-11, a) (2013-11, b) (2013-11, c) (2013-11, d) (2013-12, e) 我希望将具有相同键的行合并为如下(我所需的输出): 仅使用Pig拉丁语如何实现这一点?您需要的是运算符。您可以像这样使用它: -- A is your sample. B = GROUP A BY $0 ; DUMP B ; -- (2013-11, {(a), (b), (c), (d)}) -- (2013-12, {(e)}

我有这样的数据

DUMP A;
(2013-11, a)
(2013-11, b)
(2013-11, c)
(2013-11, d)
(2013-12, e)
我希望将具有相同键的行合并为如下(我所需的输出):


仅使用Pig拉丁语如何实现这一点?

您需要的是运算符。您可以像这样使用它:

-- A is your sample.

B = GROUP A BY $0 ;
DUMP B ;
-- (2013-11, {(a), (b), (c), (d)})
-- (2013-12, {(e)}

请注意,不能保证包中的值按字母顺序(或任何顺序)排列。

非常感谢!我使用了
GROUP
操作符,但我不确定如何引用表中的列。在这种情况下,
a b c d
的输出是bag。我怎样才能把它弄平?我尝试了
C=FOREACH B生成展平(A)但这并没有给我上面所需的结果。扁平化是指将其转换为元组吗?如果你不能100%确定会有多少列,那么你需要使用一个袋子。根据您需要这样做的原因,可能有更好的解决方案。是的,就像上面我所希望的输出一样。在胡闹之后,我认为我处理问题的方式是错误的,它不会达到我的最终结果。所以我需要用另一种方法。我正在尝试按年/月(键)对日志消息进行分组,并使每列包含每个主机的日志数。仍然不知道如何使用Pig完成。请随意用您迄今为止的尝试提出另一个问题。
-- A is your sample.

B = GROUP A BY $0 ;
DUMP B ;
-- (2013-11, {(a), (b), (c), (d)})
-- (2013-12, {(e)}