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
需求得:
- 按照 schema_id, type_desc 為分組的記錄總數,如下:

image
- 按照 schema_id, type_desc 為分組的記錄總數,以及按照 schema_id 為分組的記錄總數,且兩個分組的記錄總數需要合併到一個結果集,如下:

image
3.按照 schema_id, type_desc 為分組的記錄總數,以及按照 type_desc 為分組的記錄總數,且兩個分組的記錄總數需要合併到一個結果集,如下:

image
- 按照schema_id, type_desc 各自為分組,並匯總所有數據的總數,最終結果展示在一個結果集,如下:

image
- 按照 schema_id + type_desc, schema_id 為分組依據求分組總數, 併合並所有數據總計到一個結果集:

image
要求: 必須使用一個 SELECT ..Group by 求解,而不是 union all/union
其實不僅僅是 Hive, SQL Server/Oracle 都有自己的 Group by 子選項案例。這裡有篇舊文,可供參考:
想了解 Hadoop/Hive/Spark 集群搭建,別求公司的 DevOps 大師們了,他們是爺爺不會理你的。開玩笑啦,其實他們才忙呢,自個兒能解決的問題,作為 IT 人別偷懶就是了。看這裡: