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學習營