1.order by
全局排序,只有一个Reducer
2.sort by
分区内有序
3.distribute by
类似MR中partition,进行分区结合sort by使用
4.cluster by
当distribute by和sort by字段相同时,可以使用cluster by方式;但排序只能是升序排序,不能指定排序规则为asc或desc
在生产环境中order by用的比较少,容易导致OOM(内存溢出)sort by + distribute by用的多。
5.总结
(1) OOM(内存溢出)
OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error
为什么会没有内存了呢?原因不外乎有两点:
- 分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。
- 应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。