Hive 筆記

  1. DESCRIBE EXTENDED mydb.employees  DESCRIBE EXTENDED mydb.employees DESCRIBE EXTENDED mydb.employees
  2. hive> SHOW PARTITIONS employees;   SHOW PARTITIONS command數據庫

  3. Hive : select from group by : group by 對聚合操做以外的字段使用. 先是 from group by 執行後, 才執行select操做. cookie

  4. Hive 數據庫時間轉換: tbl_pv_hour.time字段, 格式是app

    20141019 10:40:01函數

    20141019 10:51:25unix

    20141019 10:51:02netty

    20141019 10:42:03ip

    20141019 10:41:47ci

    轉換成 基準時間是unix_timestamp(time,'yyyyMMdd HH:mm:ss'), 時間格式字符串不可少.字符串

    select unix_timestamp(time,'yyyyMMdd HH:mm:ss') from tbl_pv_hour where dt="20141019" limit 5;terminal

  5. GROUP BY : 分組, 將同一個 字段的同一個值, 聚合爲一組. 組中是一個關鍵字的多條記錄.

    在此基礎上, 再使用聚合函數:max() \ min() \ sum() 等, 則會在一個 關鍵字值 對應的 分組中 找到 最大(max()) 最小(min()) 的一條記錄, 即實現了去重.​

    示例:

    INSERT INTO TABLE default.general_details_day_gaozs

        SELECT letv_cookie,max(ip),max(country),max(area),max(province),max(city),max(nettype),max(os),

            max(os_version),p1,p2,max(p3),max(app),max(brand),max(terminal_id),max(resolution),max(browser),max(fake)

        FROM data_raw.tbl_env_hour

        WHERE dt=${datetime} and product=1

        GROUP BY letv_cookie,p1,p2

    其中  GROUP BY letv_cookie,p1,p2 將數據分組, max()將分組中最大值取出, 完成去重. 語句中不出現distinct, 沒用.

  6. 好的

相關文章
相關標籤/搜索