Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Reducer中的Hadoop排序_Java_Sorting_Hadoop - Fatal编程技术网

Java Reducer中的Hadoop排序

Java Reducer中的Hadoop排序,java,sorting,hadoop,Java,Sorting,Hadoop,我有一个map reduce代码,在mapper中我正在做一些计算,而在reducer中我正在应用公式以得到结果。我的结果是IntDouble对作为键,文本作为值格式。我需要知道如何对减速器的结果进行排序 这是减速器的输出示例。我需要按钥匙分类。我在mapper中实现了所有代码,它对代码进行了完美的排序,但与reducer不同的是,结果没有排序 [1 0.5] Mr. Nice Guy [1 0.0] Rush Hour [1 0.3] Twin

我有一个map reduce代码,在mapper中我正在做一些计算,而在reducer中我正在应用公式以得到结果。我的结果是IntDouble对作为键,文本作为值格式。我需要知道如何对减速器的结果进行排序

这是减速器的输出示例。我需要按钥匙分类。我在mapper中实现了所有代码,它对代码进行了完美的排序,但与reducer不同的是,结果没有排序

[1      0.5]    Mr. Nice Guy
[1      0.0]    Rush Hour
[1      0.3]    Twin Dragons
[1      0.6]    Snake in the Eagle's Shadow
[1      0.5]    Police Story
[1      0.5]    Armour of God 2: Operation Condor
[1      0.5]    Drunken Master
预期排序列表:

    [1      0.0]    Rush Hour
    [1      0.3]    Twin Dragons
    [1      0.5]    Mr. Nice Guy
    [1      0.5]    Police Story
    [1      0.5]    Armour of God 2: Operation Condor
    [1      0.5]    Drunken Master
    [1      0.6]    Snake in the Eagle's Shadow

您希望密钥如何排序?
我将定义一个对象
IntDoublePair
,使其具有可比性,实现适合我的比较逻辑,然后在reducer中我将实例化一个
列表myList
,在迭代每个键的值时,我将它们添加到
myList
。最后对列表进行排序。

您还可以搜索“辅助排序mapreduce”。。。在ArrayList中指定结果后,是否应该创建一个方法来对列表进行排序?因为默认的Collections.sort方法似乎不适用于此类字符串。定义IntDoublePair后,将实现可比较的集合。sort将应用于对象并对列表进行排序。这里有一个很好的教程:当我再次思考它时,它不会帮助你。。。因为reducer已经对同一个键的值进行了迭代。。。对不起:/你的具体情况是什么?第二种可能会有所帮助,但可能有更简单的解决办法。。就像分割键一样,用一些分隔符将y坐标附加到每个值上。然后在减速器中按此分隔符拆分。然后,我首先建议的是,我已经通过了链接,但我对如何对IntDoublePair排序的实现感到困惑。因为我需要比较IntDoublePair对象中的Int和Double。