当前位置: 首页 > 知识库问答 >
问题:

Pig拉丁语中几个字段元组的过滤和分组

华煜祺
2023-03-14

我对使用Pig进行工作还比较陌生。我有一个巨大的表(3.67百万个条目),其中有字段--id、feat1:value、feat2:value...featn:value。其中,id是文本,feat_i是特性名称,而value是给定id的特性i的thevalue。由于元组是稀疏表示,因此每个元组的特征数目可能不同。

  1. ID1 F1:23 F3:45 F7:67
  2. ID2 F2:12 F3:23 F5:21
  3. ID3 F7:30 F16:8 F23:1

现在的任务是对具有共同特性的查询进行分组。我应该能够得到那些具有任何特征重叠的查询集。我试过几件事。交叉和联接在数据中产生爆炸,而reducer被卡住了。我不熟悉通过命令来调节组。

是否有一种方法可以在GROUP BY中编写条件,以便它只选择那些具有公共功能的查询。
对于上面的行,结果将是:

    null

共有1个答案

上官淮晨
2023-03-14

我想不出一个优雅的方法来做这在猪。基于某种条件,不可能进入b组。

但是,您可以对所有关系进行分组,并将其传递给一个UDF,该UDF将每个记录与其他记录进行比较。不是非常可伸缩性和UDF是必需的,但它可以完成这项工作。

 类似资料:
  • 谷歌Web字体上的一些字体支持多个“字符集”。问题是,如果我使用的web字体只提供“拉丁”字形,用户将页面翻译成不支持字形的语言时,会清楚地注意到混乱的文本。 我希望我的网页字体支持最流行的语言在世界上除了英语,例如,西班牙语,德语,法语等。 出于这个目的,我想知道,“拉丁”和“拉丁扩展”到底是针对哪种语言的。 我想答案应该是这样的:

  • 问题内容: 我想删除原始数组(是)中的特定元素。我那个数组,并返回新的数组。但这不会影响此代码中的原始数组。我如何轻松地从原始数组中删除那些元素? 问题答案: 该方法不仅用于收集元素集,而且还用于收集元素集。如果您想通过评估条件来获得一项,那么您还有其他三种选择。,并因此只有当你想对多个项目的操作,你应该考虑使用过滤功能。就需要完成的工作而言,没有一个答案是完整的。他们使用过滤器功能隔离一个集合(

  • 下面我有以下数据。 所以,我不知道为什么UDF可以使用int而不能使用CharArray。此外,我觉得可能有一种方法可以做到这一点,而不使用UDF..但不确定从哪里开始。对这里可能发生的事情有什么建议吗?

  • 问题内容: 我有一个树形结构,其中的关键字可能包含一些拉丁字符。我有一个遍历树上所有叶子并在特定条件下将每个关键字添加到列表的函数。 这是我将这些关键字添加到列表中的代码: 如果在这种情况下的关键字是,那么我的输出是: 看来打印功能可以正确显示拉丁字符,但是当我将其添加到列表中时,它就会被解码。 我该如何更改?我需要能够使用标准拉丁字符而不是它们的解码版本来打印列表。 问题答案: 您没有unico

  • 我正在尝试从MongoDB中的数组中获取一个元素。我认为聚合过滤器是正确的应用程序。但是我已经尝试了一百万次,我仍然找不到问题所在。你能帮我吗? MongoDB示例数据: 我的解决方案: 我的结果: 预期结果: 我已经检查了Mongo参考:https://docs.mongodb.com/manual/reference/operator/aggregation/filter/#example M

  • 例如insert时需要忽略某个特定属性, update时只更新某些属性, 查询时需要跳过大字段等。 FieldFilter/FieldMatcher提供细致的过滤选项,包括: 黑名单(locked) 白名单(actived) 忽略空值(ignoreNull) 忽略数值0(ignoreZero) 忽略日期属性(ignoreDate) 忽略空字符串(ignoreBlankStr) 忽略数值型主键(ig