Tag Archives: sort

升级到JDK 7后,Sort出现兼容性问题的解法。

在昨天的文章 TimSort in Java 7 中,我们讨论了升级到JDK 7后,Collection的sort方法,出现兼容性问题的原因。

究其根本,还是我们写的compare函数不够严谨。

本文主要针对Hadoop、Hive,从系统的部署、配置层面提出一些解法。

1、Hive

在执行前,指定JVM选项。
set mapreduce.map.java.opts=-Xmx2000m -Djava.util.Arrays.useLegacyMergeSort=true[......]

继续阅读

[转载]TimSort in Java 7

转载自:TimSort in Java 7

1. 为什么写这篇文章

这篇文章的根源是在产品中发现了一个诡异的bug:只能在产品环境下重现,在我的本地开发环境无法重现,而双方的代码没有任何区别。最后用remote debug的方法找到异常所在:
Exception in thread "main" java.lang.IllegalArgumentException: Comparison
method violates its general contrac[......]

继续阅读

Linux Shell sort命令,多域排序的正确用法。。

之前多少次都是错的。

这才是正确的,假设对列1按照字母序,2按照数值序。
sort -k 1,1 -k2,2n
2014.05.12更新:
-g, --general-numeric-sort compare according to general numerical value
-n, --numeric-sort compare according to string numerical value

如果数据中有科学计数法,形如"8.0177[......]

继续阅读

Linux sort的四个小技巧

像排序这种事情,用C/C++可以写,但很麻烦,交给sort就好了,功能很强大的。

1、按照多个列排序(列间空格分开):

测试数据:

先按照第1列排序,再第2列的命令:

2011-11-20补充:必须加-s选项,表示stable sort,即两列排序互相不打扰。
$ cat ./test
1       x
5       8
1       a

$ sort -s -k 1 -k 2 ./test
1       a
1       x
5      [......]

继续阅读