Hive 的入门级 Group By 全案例

  • 2019 年 12 月 25 日
  • 筆記

之前总是用全家桶方式玩大数据栈,总觉得有点儿戏。

这两天把自己的 Hadoop/Hive/Spark 集群环境搭好了,准备正式的做点试验,写点文章。

所以干货文章即将到来,小伙伴们,你们的赞准备好了嘛?

我这里用到一张表,叫做 tblobj2. 熟悉 sql server 一定不陌生,其实就是从 sql server 导了一张系统表 sys.objects 到 Hive 里面。具体方法可以参考这里:

使用 Sqoop 将 30W+ MySQL 数据导入 Hive

这是 Hive 的第一篇公开文,讲解 group by 用法。

其余的文章存着,大家热情起来了,我再慢慢放。觉得小编嘚瑟的朋友,砖可以拍过来了。

扯远了,回归正题,这里是 5 道 Hive 的 group by 应用题,大家有兴趣先做着。我会在星球里公布正式答案。

已知表结构如下:

image

表的前 10 行数据 sample 如下:

image

需求得:

  1. 按照 schema_id, type_desc 为分组的记录总数,如下:

image

  1. 按照 schema_id, type_desc 为分组的记录总数,以及按照 schema_id 为分组的记录总数,且两个分组的记录总数需要合并到一个结果集,如下:

image

3.按照 schema_id, type_desc 为分组的记录总数,以及按照 type_desc 为分组的记录总数,且两个分组的记录总数需要合并到一个结果集,如下:

image

  1. 按照schema_id, type_desc 各自为分组,并汇总所有数据的总数,最终结果展示在一个结果集,如下:

image

  1. 按照 schema_id + type_desc, schema_id 为分组依据求分组总数, 并合并所有数据总计到一个结果集:

image

要求: 必须使用一个 SELECT ..Group by 求解,而不是 union all/union

其实不仅仅是 Hive, SQL Server/Oracle 都有自己的 Group by 子选项案例。这里有篇旧文,可供参考:

真以为自己懂 Group By 了?

想了解 Hadoop/Hive/Spark 集群搭建,别求公司的 DevOps 大师们了,他们是爷爷不会理你的。开玩笑啦,其实他们才忙呢,自个儿能解决的问题,作为 IT 人别偷懒就是了。看这里:

Spark SQL 与 Hive 的第一场会师

Spark 高难度对话 SQL Server 后记

周末两三事儿:大数据专栏以及百题SQL学习营