猪如何过滤不同的对(对)

2024-05-06

我是猪的新手。我有一个 Pig 脚本,它在两个元素之间生成制表符分隔的对。每行一对,例如:

John   Paul
Tom    Nik
Mark   Bill
Tom    Nik
Paul   John

我需要过滤掉重复的组合。如果我使用 DISTINCT,我会过滤掉两个“Tom Nik”条目。结果是:

John   Paul
Tom    Nik
Mark   Bill
Paul   John

这种方法的问题是我留下了“John Paul”和“Paul John”,就我的目的而言,它们应该被视为相同(相同的组合)。 有没有办法删除排列组合?


我不确定 Pig 中如何实现字符串比较,但尝试以下方法可能是值得的:

-- A is your input
B = FOREACH A GENERATE FLATTEN(($0 < $1 ? ($0, $1) : ($1, $0))) ; 
C = DISTINCT B ;

通过对名称进行排序,使“较小的”始终出现在前面John Paul and Paul John现在应该是相同的顺序,使得DISTINCT消除一个。

然而,这种方法完全取决于字符串比较的实现方式。例如,如果比较长度,则John Paulcase 将无法正确过滤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猪如何过滤不同的对(对) 的相关文章

随机推荐

  • Quickblox 未读消息总数

    您好 如何获取 quicblox 中未读消息的总数 对于所有对话框 有直接的api调用吗 谢谢 这是从 Quickblox Swift 获取未读消息总数的工作代码 let dialogsIDs NSSet NSSet array QBReq
  • 将单元格转换为双精度

    gt gt C 1 2 CF 2 C 1 2 CF 2 gt gt whos C Name Size Bytes Class Attributes C 2x2 478 cell 我怎样才能转换C into double以便 gt gt C
  • 如何通知 AngularJS 表单已由 jQuery 外部填写?

    我在 AngularJS 中有一个页面 其中有一个包含一些字段的表单 加载该页面后 我想要一个书签 单击该书签可根据配置文件中的数据填充字段 正在使用一个 JS 文件 该文件使用 jquery 来填充表单中的数据 当我做 id val ab
  • 使用 Git 维护项目

    我有 2 个项目 实际上这 2 个项目彼此大约 80 相同 主要区别在于语言和商业模式 一个是针对使用英语的更多受众 并且有 9 美元 月的商业模式 另一个是使用本地语言与免费增值商业模式 有时 当我想添加新的特性 功能时 我想将其添加到两
  • Visual Studio Code,调试子进程不起作用

    我有这个确切的问题 https github com Microsoft vscode cpptools issues 511 https github com Microsoft vscode cpptools issues 511 但那
  • html画布绘图显示出来

    我确信这个问题在我还找不到答案之前就已经被问过 我想通过在顶部绘制另一个白色矩形来擦除黑色矩形的一部分 但是许多原始黑色矩形显示出来 就像正在平均一样 canvas document getElementById canvas contex
  • Ansible 和硬件检查

    我必须使用 ansible 检查 Linux 机器上的不同硬件和配置元素 我完全不确定如何做到这一点 RAM 磁盘空间 DNS CPU 我知道我几乎可以找到我想要的所有事实都在 ansible 中 但我不明白如何使用它 例如 我必须检查 R
  • 如何从 coxme 包中的 lmekin 对象中提取 p 值

    我希望能够查看 coxme 包生成的 lmekin 对象的 p 值 eg model lmekin formula height score sex age 1 IID data phenotype df varlist kinship m
  • weak_ptr、make_shared 和内存释放

    一个控制块shared ptr当至少有一个时保持存活weak ptr展示 如果共享指针是用以下命令创建的make shared这意味着对象的整个内存都保持分配状态 对象本身被正确破坏 但由于对象的控制块和内存被分配在一个块中 如make s
  • 如何在Python中每次运行脚本时增加变量?

    我有一个 Python 脚本 我想在每次运行时增加一个全局变量 这可能吗 使用外部文件很容易做到这一点 您可以创建一个函数来为您执行此操作 这样您就可以根据需要将多个文件用于多个变量 尽管在这种情况下您可能想要研究某种序列化并将所有内容存储
  • 在 ionic 3 应用程序中找不到命名空间“google”

    在我尝试在项目中使用 google 变量后 任何人都可以帮我解决这个错误 我进入了 ionic 3 应用程序 npm install save types google maps 将以下内容添加到我的 package json 中 type
  • winpdb 不适用于 python 3.3

    我无法让 rpdb2 与 python 3 3 一起运行 但根据多个来源 这应该是可能的 rpdb2 d myscript py A password should be set to secure debugger client serv
  • 是否有中欧通用的 TimeZoneInfo?

    是否有针对中欧的通用 TimeZoneInfo 将 CET 和 CEST 纳入考虑 我有一个应用程序正在执行以下操作 TimeZoneInfo tzi TimeZoneInfo FindSystemTimeZoneById Central
  • 通过pip安装lxml时出错:需要Microsoft Visual C++ 14.0

    我使用的是 Windows 10 机器 最近从 python 2 7 迁移到 3 5 当尝试通过 pip 安装 lxml 时 它会停止并抛出此错误消息 构建 lxml etree 扩展错误 需要 Microsoft Visual C 14
  • 在Python子目录中创建文件?

    在我的 Python 脚本中 我需要在子目录中创建一个新文件而不更改目录 并且需要从当前目录不断编辑该文件 My code os mkdir datetime dst for ip in open list txt with open ip
  • 使用加权概率和值查找数组中的项目

    上周我正在做的一个简单程序遇到了一些问题 这里有人帮助了我 现在我遇到了另一个问题 我目前有这个代码 var findItem function desiredItem var items item rusty nail probabili
  • Mac OS X 文件关联有效,但文件图标未更改

    我使用 Qt 5 3 2 开发了一个 Mac 应用程序 该应用程序处理具有特定扩展名的文件 比方说 xyz 我创建了一个名为 XYZ icns 的图标文件 并将其添加到我的应用程序包资源文件夹中 MyApp app Contents Res
  • 在自动触发的默认侦听器之前触发 Hibernate 自定义事件侦听器

    我创建了一个自定义 Hibernate 事件监听器 扩展了 org hibernate event PreInsertEventListener 自定义侦听器会重写 onPreInsert 方法 并在使用 DAO 将 联系人 实体保存到数据
  • 如何在android中动态添加项目到listview

    有谁能够帮助我 我正在尝试在 Android 中创建一个 ListView 并且我正在尝试使用代码 不使用 XML 将项目加载到其中 这是我到目前为止的代码 tweetList ListView this findViewById R id
  • 猪如何过滤不同的对(对)

    我是猪的新手 我有一个 Pig 脚本 它在两个元素之间生成制表符分隔的对 每行一对 例如 John Paul Tom Nik Mark Bill Tom Nik Paul John 我需要过滤掉重复的组合 如果我使用 DISTINCT 我会