Pig:如何拆分数组

发布于 2024-11-01 10:46:25 字数 310 浏览 3 评论 0原文

我有一个像这样的元组:

((item114,),1)
((item32,item31,),1)
((item81,item27,),2)

最后一个数字是该项目的频率,所以 item114 有 freq。共 1 个,第 81 项有频率。 2,现在我想将其拆分为以下格式的元组:(item#, freq.),所以结果将是:

 (item114, 1)
 (item32, 1)
 (item31, 1)
 (item81, 2)
 (item27, 2)

我该怎么做?谢谢。

i have a tuple like this:

((item114,),1)
((item32,item31,),1)
((item81,item27,),2)

the last number is the frequency of the item,so item114 has freq. of 1, item 81 has freq. of 2, now i want to split it to tuple of the format: (item#, freq.), so the result would be:

 (item114, 1)
 (item32, 1)
 (item31, 1)
 (item81, 2)
 (item27, 2)

how can i do that? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陪我终i 2024-11-08 10:46:25

您基本上可以展平关系,这将为您提供所需的元组。
例如,让C描述上述关系如下:

C = GROUP input by A;

describe C;
C: {group: int, input: {i: int,j: int,k: int}}

dump C;
({(item114,)},1)

d = foreach c generate group, flatten(a.i);

describe d;
d: {group: int,i::i: int}

dump d;
(item114, 1)
(item32, 1)

You could essentially flatten out the relation, which shall give you the desired tuple.
For example, let C describe the above relation which is as follows,

C = GROUP input by A;

describe C;
C: {group: int, input: {i: int,j: int,k: int}}

dump C;
({(item114,)},1)

d = foreach c generate group, flatten(a.i);

describe d;
d: {group: int,i::i: int}

dump d;
(item114, 1)
(item32, 1)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文