一、求每一年最大氣溫的那一天 + 溫度
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子句來進行排序。這種排序...