scala - 使用 spark 版本 2 在 HIVE 中哪个更有效,最大或按 desc 限制 1 排序
问题描述
由于 Hive 将数据保持在分布式状态,当我们没有考虑分区或分桶中的该列时,以下两个查询将更有效。
select max(stat_id) from stats_tbl ;
select stat_id from stats_tbl order by stat_id desc limit 1;
解决方案
绝对select max(stat_id) from stats_tbl
是因为order by
需要将所有数据收集(读取“大量洗牌”)到单个减速器中(这就是为什么你必须提供一个limit
子句)与可以分布式计算的聚合函数相比,这将是低效的。
推荐阅读
- python - Python if 语句检索“系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”
- c# - 是否可以将 AuthorizeAttribute 与外部 api 调用一起使用?
- javascript - 当 HTML5 Datepicker 关闭时如何检测(使用 Javascript)?
- javascript - 如何使两个密码输入与验证两个密码必须相同?
- java - 在 Android Studio 的图库中保存图像时出错
- html - 如何将导航栏链接向右对齐
- reactjs - 最低限度的 google 放置 api 字段以进行 react-geosuggest 工作?
- firebase - 如何在 React Native 中实现混合面板分析
- apache-spark - 如何将 apache spark 配置设置为在集群模式下作为数据块作业运行
- mysql - SQL UPDATE, WHERE 条件限制(索引停止工作)