Hive高階查詢練習02

2021-10-24 01:53:20 字數 3143 閱讀 2391

一、求每一年最大氣溫的那一天 + 溫度

1、說明

資料格式

2010012325

2014010114

2014010216

2014010317

2014010410

2014010506

2012010609

2012010732

2012010812

2012010919

2012011023

2001010116

2001010212

2001010310

2001010411

2001010529

2013010619

2013010722

2013010812

2013010929

2013011023

2008010105

2008010216

2008010337

2008010414

2008010516

2007010619

2007010712

2007010812

2007010999

2007011023

2010010114

2010010216

2010010317

2010010410

2010010506

2015010649

2015010722

2015010812

2015010999

2015011023

資料解釋

2010012325 表示在 2010 年 01 月 23 日的氣溫為 25 度。

建表、資料匯入及拆分

create table tq(line string)

load data local inpath '/root/kb08/hive/homework/tq.txt' into table tq

create table ptq(datetime string,temp int) partitioned by(year int)

set hive.exec.dynamic.partition.mode=nonstrict

insert into ptq

partition(year)

select datetime,temp,year from vtq

select * from ptq

表清洗後結果(一部分)

查詢語句

select * from ptq

select t.datetime,t.temp from

(select datetime,temp,dense_rank() over(partition by year order by temp desc) dnk from ptq

)t

輸出結果(一部分)

求每一年最大氣溫的那一天 + 溫度

二、求學生選課情況

1、資料說明

(1)資料格式

id course

1,a1,b

1,c1,e

2,a2,c

2,d2,f

3,a3,b

3,c3,e

(2)字段含義

表示有 id 為 1,2,3 的學生選修了課程 a,b,c,d,e,f 中其中幾門。

2、需求

編寫 hive 的 hql 語句來實現以下結果:表中的 1 表示選修,表中的 0 表示

未選修輸出結果格式如下

id a b c d e f

1 1 1 1 0 1 0

2 1 0 1 1 0 1

3 1 1 1 0 1 0

建表,資料匯入

create table mycourse(stuid int,course string) row format delimited fields terminated by ','

load data local inpath '/root/kb08/hive/homework/course.txt' into table mycourse

select * from mycourse

查詢語句

輸出結果

Hive高階查詢練習01(資料 過程)

一 每個店鋪 top3 有 50w 個京東店鋪,每個顧客訪問任何乙個店鋪的任何乙個商品時,都會產生一條訪問日誌,訪問日誌儲存的表名為 visit,訪客使用者 id 為 user id,被訪問的店鋪名稱為 shop。請統計 資料 u1 a u2 b u1 b u1 a u3 c u4 b u1 a u...

Hive高階查詢

select基礎 cte和巢狀查詢 3 高階語句 4 關聯查詢 mapjoin 1 load移動資料 2 insert表插入資料 使用insert語句將資料插入表 分割槽 insert 支援overwrite覆蓋和into追加 hive支援從同乙個表進行多次插入 insert into中table關...

Hive總結(十二)Hive查詢高階

通過hive提供的order by子句可以讓最終的輸出結果整體有序。但是因為hive是基於hadoop之上的,要生成這種整體有序的結果,就必須強迫hadoop只利用乙個reduce來完成處理。這種方式的 就是回降低效率。如果你不需要最終結果整體有序,你就可以使用sort by子句來進行排序。這種排序...