Apache pig:检查 cvs 输入中存在多少具有相同数字的行(任意组合)
Posted
技术标签:
【中文标题】Apache pig:检查 cvs 输入中存在多少具有相同数字的行(任意组合)【英文标题】:Apache pig: checking how many lines with the same numbers (in any combinations) exist in a cvs input 【发布时间】:2015-03-04 02:33:50 【问题描述】:好的,伙计们,我在这里有点新。 我想运行一个 pig 脚本并检查 cvs 输入中存在多少具有相同数字(任意组合)的行
我确实了解如何将 CVS 放入 hadoop 以及如何通过 pig 解析它。 我确实了解如何遍历输入行,逻辑告诉我需要先对每个输入行进行排序,然后进行计数,但我不知道该怎么做
请看下面我的输入 CVS 以及我希望得到什么样的输出。 有人可以帮忙吗?
这是我的意见
123 321 213 456 564
我想得到以下结果
(3,1,2,3)(2,4,5,6)
【问题讨论】:
【参考方案1】:让我告诉你一些想法。
如果以下是您的输入
123 321 213 456 564
您可以将输入分成 5 个以空格分隔的值,然后按升序排列每个值,如下所示。
123 123 123 456 456
然后你使用字数统计程序找到你想要的输出。
【讨论】:
感谢您回复我 您如何对每一行进行排序?我的意思是,如何在 pig 脚本中将输入行“321”更改为 123?这是我做不到的 为此您可以使用 UDF,您可以在 java 中编写自己的方法来执行此操作。你可以从here开始 好的,我希望避免UDF并直接通过pig来做,无论如何,谢谢你的帮助。以上是关于Apache pig:检查 cvs 输入中存在多少具有相同数字的行(任意组合)的主要内容,如果未能解决你的问题,请参考以下文章
如果存在多个值,Apache Pig Group by 和过滤器?