问题标签 [secondary-sort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
59 浏览

java - 未能设置 KeyComparator 函数

我正在尝试按值对数据进行排序

我使用的方法是将键和值组合成一个复合键

例如 (key,value) -> ({key,value},value)

并定义我的 KeyComaparator 来比较键中的值部分

我的数据是一段我应该数单词的段落

我做了两个工作,第一个做wordCount,但是在reducer中将键组合成复合键。

这是结果

是,4 4,15
15
ECA,1 1
至,6 6
.....

在第二份工作中,我尝试使用复合键按值排序

这是我的映射器2

这是我的密钥比较器

这是我的减速机2

这是我的主要功能

但结果是这样的

是 13
32
ECA 21
到 14
。. .

丢了很多字

但如果我没有使用我的 Keycomarator

它返回未排序的结果,就像我提到的第一个

有什么想法可以解决这个问题吗?谢谢!

0 投票
1 回答
479 浏览

java - mapreduce 二级排序不起作用

我正在尝试使用符合以下条件的复合键在 mapreduce 中进行二次排序:

  • 字符串自然键 = 程序名称

  • Long key-for-sorting = 自 1970 年以来的时间,以毫秒为单位

问题是,在排序之后,我根据整个复合键得到了很多减速器

通过调试,我已经验证了哈希码和比较函数是正确的。从调试日志中,每个块来自不同的减速器,它表明分组或分区没有成功。来自调试日志:

如您所见,语音被发送到两个不同的减速器,但时间戳不同。任何帮助,将不胜感激。复合键是以下类:

我实现的 Partitioner、GroupingComparator 和 SortingComparator 如下:

}

}

}

0 投票
2 回答
278 浏览

hadoop - 为二级排序创建复合键类

我正在尝试为二级排序创建一个复合键String uniqueCarrier类。int month谁能告诉我,相同的步骤是什么。

0 投票
1 回答
132 浏览

hadoop - 使用复合键时迭代值时的部分键更改 - Hadoop

我已经在 Hadoop 上实现了二级排序,但我并不真正了解框架的行为。

我创建了一个复合键,其中包含原始键和部分值,用于排序。

为了实现这一点,我实现了自己的分区器

我自己的组比较器

}

并通过以下方式定义这对夫妇

}

这是司机

现在,这可行,但真正奇怪的是,当在 reducer 中迭代一个键时,键的第二部分(值部分)在每次迭代中都会发生变化。为什么以及如何?

0 投票
2 回答
237 浏览

hadoop - Hadoop 二级排序 - 使用或不使用

我有来自交通数据分析的事故输入数据。一些列是:

事故 ID、事故日期、星期几

1, 1/1/1979, 5 (星期四)

2, 1/2/1979, 6 (星期五)

…………

3, 1/1/1980, 0 (星期日)

我正在尝试解决以下问题:

查找每年每天发生的事故数量

所以输出应该是这样的:

其中键是(年,星期几)

并且值=当天的事故数这里第1行代表,年=1979日=星期天,事故数=500等等。

在这种情况下,我尝试使用辅助排序方法来解决它。这是解决这个问题的正确方法吗?

如果二级排序是正确的方法,它对我不起作用。这里是关键类,mapper和reducer。但是我的输出并没有达到预期。请帮忙 ..

0 投票
3 回答
2697 浏览

java - 如何对地图列表进行二次排序

假设我有以下地图列表

我首先想按计数然后按名称对这张地图进行排序:

期望的输出:

我尝试了以下执行第一次排序,但在按计数排序后无法使用名称排序

0 投票
0 回答
357 浏览

sorting - 如何对hadoop流中带有数字的文件名进行二次排序?

我正在尝试对文件名进行排序,例如

我现在正在使用具有以下参数的排序:

键值对由选项卡分隔,文件名作为值,字符串作为键。问题是我现在的排序对文件名进行二次排序,以便我得到

我怎样才能得到它,使文件按如下方式排序:

我正在使用 hadoop 流式传输 2.7.1

0 投票
2 回答
657 浏览

java - Hadoop 二级排序复合键 compareTo 与自定义排序器比较实现

在 Hadoop 二级排序中,Composite 中的代码具有以下比较值的方法,Composite 键类实现WritableComparable:-

在我们创建的用于执行扩展WritableComparator的二级排序的自定义排序器中,代码如下所示:-

我想知道为什么我们CustomKey通过实现来比较值两次以便在类中排序一次WritableComparable,然后我们CustomSorter再次创建一个类来通过扩展对值进行排序WritableComparator

0 投票
0 回答
135 浏览

java - Hadoop M/R 二级排序不起作用,基于用户的姓氏

我想根据用户的姓对输出进行排序,使用的键是名字。以下是我正在使用的类,但我没有得到基于姓氏的排序输出。我是hadoop的新手,这是我使用各种互联网资源的帮助编写的。

主要课程:-

0 投票
4 回答
683 浏览

python - 使用另一个列表对 Python 列表中的字符串进行排序

假设我有以下列表:

每个列表将具有名为“ID”变量的元素,然后是 3 个其他类别(名称、颜色和大小),其中每个类别中的元素数量不确定。

我想对这些变量进行排序,但不知道每个类别中有多少具有以下“排序列表”:

我可以获得所需的输出(见下文),尽管我想有更好/更 Pythonic 的方式这样做。

关于如何改进我的方法或代码的任何建议?