大数据面试题:Hive的cluster by 、sort by、distribute by 、order by 区别?

这篇具有很好参考价值的文章主要介绍了大数据面试题:Hive的cluster by 、sort by、distribute by 、order by 区别?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面试题来源:

《大数据面试题 V4.0》

大数据面试题V3.0,523道题,679页,46w字

参考答案:

可回答:1)Hive的排序函数;2)Hive的排序,以及各自的区别;3)四个by的区别?

参考答案:

共有四种排序:Order By,Sort By,Distribute By,Cluster By

1、Order By:全局排序

  • 对输入的数据做排序,故此只有一个reducer(多个reducer无法保证全局有序);

  • 只有一个reducer,会导致当输入规模较大时,需要较长的计算时间;

1)使用 ORDER BY 子句排序

ASC(ascend): 升序(默认)

DESC(descend): 降序

2)ORDER BY 子句在SELECT语句的结尾

3)案例

查询员工信息按工资升序排列

 select * from emp order by sal;

2、Sort By:非全局排序

  • 在数据进入reducer前完成排序;

  • 当mapred.reduce.tasks > 1时,只能保证每个reducer的输出有序,不保证全局有序;

3、Distribute By:分区排序

  • 按照指定的字段对数据进行划分输出到不同的reduce中,通常是为了进行后续的聚集操作;

  • 常和sort by一起使用,并且distribute by必须在sort by前面;

4、Cluster By

相当于distribute by+sort by,只能默认升序,不能使用倒序。文章来源地址https://www.toymoban.com/news/detail-492522.html

到了这里,关于大数据面试题:Hive的cluster by 、sort by、distribute by 、order by 区别?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hive 随机抽样 distribute by rand() sort by rand() limit n

    在分析或者处理大规模数据时,由于数据量较大时,一般只能随机抽样一部分的数据来分析,那么如何进行随机抽样呢? 下面有几种方法,目前常用的是 distribute by rand() sort by rand() limit n order by rand() : order by 是全局的,比较耗时, 只有一个reduce,是真正的随机 sort by rand()

    2023年04月23日
    浏览(65)
  • hive order by length() 报错

    hql 如下 select length(tag) from table1 order by length(tag) limit 20; 报错FAILED: SemanticException [Error 10004]: Line…Invalid table alias or column reference ‘tag’: (possible column names are: _c0) FAILED: SemanticException [Error 10004]: Line…Invalid table alias or column reference ‘tag’: (possible column names are: _c0) 修改 用别名替

    2024年01月21日
    浏览(38)
  • Hive:聚合函数、GROUP BY、ORDER BY、LIMIT、执行顺序和JOIN、函数

    1.聚合函数 常见的聚合函数: Count、Sum、Max、Min和Avg 特点:不管原始数据多少条,聚合之后只有一条 Count(column)返回某列的行数,不包括NULL值 2.GROUP BY select中的字段要么是GROUP BY字段,要么是被聚合函数应用的字段 2.HAVING WHERE中无法出现聚合函数,所以有了HAVING WHERE是分组前

    2024年02月07日
    浏览(49)
  • MySQL 数据库查询与数据操作:使用 ORDER BY 排序和 DELETE 删除记录

    使用 ORDER BY 语句按升序或降序对结果进行排序。 ORDER BY 默认按升序排序。要按降序排序结果,使用 DESC 。 示例按名称按字母顺序排序结果: ORDER BY DESC 使用 DESC 以降序排序结果。 示例按名称以字母逆序排序结果: 您可以使用\\\"DELETE FROM\\\"语句从现有表格中

    2024年02月05日
    浏览(80)
  • mysql中order by多个字段 order by字段可以为空吗

    在MySQL中,要使用“ORDER BY”语句来进行多字段排序,必须先将多个字段的名称按照顺序排列放在“ORDER BY”后面,然后按照每个字段单独的排序规则进行排序。 排序字段的顺序按照order by语句中的先后顺序进行, 先根据第一个排序字段排序 ,如果有相同的值,则根据第二个

    2024年02月03日
    浏览(43)
  • Mybatis ORDER BY 排序失效 & ORDER BY 与 CASE WHEN THEN 排序问题

    如果传递给 mapper 的参数值是以 #{test_参数} 的形式,那么就会报错 具体如下: 传递参数是 name 排序规则是升序 asc ORDER BY 后 使用 #{ } 获取参数值,运行后,会报错的,必须改成 ${ } ,井号改成 美元符号。 如下所示: 数据库表 test_table 的真实字段名: test_id 测试参数值:

    2024年02月11日
    浏览(55)
  • mysql GROUP BY 怎么 order by 排序

    在 MySQL 中使用 GROUP BY 子句时,如果需要对结果进行排序,可以使用 ORDER BY 子句来对分组后的结果进行排序。 ORDER BY 子句应该放在 GROUP BY 子句之后,使用逗号来分隔需要排序的列,并在排序列后指定排序顺序。例如: 在这个例子中,SELECT 语句选择了表 table1 中的列 column1 和

    2024年02月16日
    浏览(58)
  • distribute by hash

    建表语句: 在最后一行的 distribute by hash (BG_DT_ZCC, ED_DT_ZCC, CUSTR_NBR); 中,指定了数据在表分区中的分布方式。这里使用了 HASH 方法, 并根据三个列 BG_DT_ZCC 、 ED_DT_ZCC 和 CUSTR_NBR 的哈希值来进行数据分布 。 哈希函数将这三列的值作为输入,并 生成一个唯一的哈希值 。根据这个

    2024年02月15日
    浏览(37)
  • SQL优化(3):order by优化

    MySQL的排序,有两种方式: Using filesort : 通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫 FileSort 排序。 Using index : 通过有序索引顺序扫描直接返回有序数据,这种情况即为 using

    2024年02月01日
    浏览(48)
  • SQL ORDER BY 关键字

    ORDER BY 用于对结果集进行排序。 ORDER BY 用于对结果集按照一个列或者多个列进行排序。 ORDER BY 默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 。 ORDER BY 子句后面的列名指示按哪些列进行排序。如果您指定多个列

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包