首页 > 解决方案 > 使用 spark 版本 2 在 HIVE 中哪个更有效,最大或按 desc 限制 1 排序

问题描述

由于 Hive 将数据保持在分布式状态,当我们没有考虑分区或分桶中的该列时,以下两个查询将更有效。

  1. select max(stat_id) from stats_tbl ;
  2. select stat_id from stats_tbl order by stat_id desc limit 1;

标签: scalaapache-sparkhiveqlsqlperformance

解决方案


绝对select max(stat_id) from stats_tbl是因为order by需要将所有数据收集(读取“大量洗牌”)到单个减速器中(这就是为什么你必须提供一个limit子句)与可以分布式计算的聚合函数相比,这将是低效的。


推荐阅读