Hive 中的 Order by 和 Sort by 有什么区别?

发布于 教育 2024-04-17
1个回答
  1. 匿名用户2024-01-27

    Hive基于Hadoop执行分布式程序,与普通单机程序不同的一个特点是,最终数据会生成多个子文件,每个reducer节点都会对分区进行处理,为自己的数据生成一个结果文件,这使得在Hadoop环境中难以对数据进行全局排序, 如果订单是在Hadoop上执行的

    通过全量排序,所有数据将集中在一个 reducer 节点上再进行排序,这很可能会超过单个节点的磁盘和内存存储容量,导致任务失败。

    另一种解决方案是放弃全局排序,转而进行分组排序,例如不寻求最高点击词顺序,而是为每个产品线查找最高点击词顺序。

    使用顺序

    by 抛出全局排序。

    select

    frombaidu_click

    orderby

    clickdesc;

    使用 distribute 和 sort 进行分组排序。

    select

    frombaidu_click

    distribute

    byproduct_line

    sortby

    clickdesc;

    distribute

    bysort

    by 是替代的,分布式的

    通过设置字段作为键,数据将被散列并分发到不同的减速机机器上,然后进行排序

    BY将在同一台减速机上对每组数据进行本地排序。

    OrderBy 是全局排序,而 Distribute+Sort 是分组排序。

    distribute+sort 的结果按组状态库进行排序和全局无序排序,输入数据通过以下两个步骤进行处理:

    根据键字段进行哈希处理,将同一组的数据分发到同一个 reducer 节点;

    对每个组的内部进行排序。

    由于每组数据都是在按键进行哈希处理后存储的,并且在组内排序,因此它也可以用于两个目的

    直接作为HBase的输入源导入HBase;

    分布+排序后,进行orderby阶段,实现间接全局排序;

    但即使它是第一次分发

    按,然后排序

    如果一个组中的数据过大,就会超过reduce节点的存储限制,永久注册表类型经常会出现137内存溢出错误,应避免对大数据进行排序。

相关回答
4个回答2024-04-17

1.so+形容词副词+that+从句,如:

this story is so interesting that i want to read it again.(这个故事太有趣了,我想再读一遍。 ) >>>More

19个回答2024-04-17

索尼的做工和ThinkPad再差不过了。

如果你去看一下机器,就会知道thinkpad做工特别好,而且手持大气,一眼就是高档产品。 >>>More

24个回答2024-04-17

用简单的方法去除它并不容易。

二氧化硫和二氧化碳一样,是弱酸的酸酐,性质相似,而亚硫酸的酸性比碳酸盐强,所以不能用强酸制弱酸的方法除去二氧化碳。 基本上,二氧化碳具有二氧化硫的性质。 >>>More

11个回答2024-04-17

第一个会沉淀 Al2(SO4)3 固体。

第二个。 首先,有Al(OH)3 >>>More

13个回答2024-04-17

相同。 转音标。

是 [t :n]。 >>>More