Hive視窗函式練習題

2021-10-01 10:34:53 字數 1876 閱讀 1273

0: jdbc:hive2://node03:10000> create table view_log(..

....

....

....

> name string,..

....

....

....

>

time string,..

....

....

....

> views int).

....

....

....

.>

row format delimited fields

terminated

by','

;0: jdbc:hive2://node03:10000> load data local inpath '/root/view_log' into table view_log;

# 資料

a,2015-01

,5a,2015-01

,15b,2015-01

,5a,2015-01

,8b,2015-01

,25a,2015-01

,5a,2015-02

,4a,2015-02

,6b,2015-02

,10b,2015-02

,5a,2015-03

,16a,2015-03

,22b,2015-03

,23b,2015-03

,10b,2015-03

,11# 期望結果

使用者 月份 最大訪問次數 總訪問次數 當月訪問次數

a 2015-01

3333

33a 2015-02

3343

10a 2015-03

3881

38b 2015-01

3030

30b 2015-02

3045

15b 2015-03

4489

44

select 

name,

time

,-- 使用視窗分析函式進行比較,從每個分割槽第一行開始比較,第一行最大值為自己,下移到第二行,將第二行和第一行作比較,獲取較大值,往下同理

max(month_views)

over

(partition

by name order

bytime

rows

between

unbounded

preceding

andcurrent

row) max_views,

-- 使用視窗分析函式進行向下累加,從第一行開始,第一行累加得到自己,到第二行,將第一行和第二行相加得到結果,向下同理

sum(month_views)

over

(partition

by name order

bytime

rows

between

unbounded

preceding

andcurrent

row) month_view_add,

month_views

from

-- 第一步使用group by按照使用者名稱和日期聚合求出單月的總額作為子表

(select name,

time

,sum

(views) month_views from view_log group

by name,

time

) tb1

Hive練習題目

hive 基本操作 1 資料自己造 a表 id int,name string b表 id int,job id int,num int c表 job id int,job string 建表語句 載入資料 a表和b表進行鏈結操作,並觀察結果 內連線 左連線 left join 小表在前,大表在後 ...

函式練習題

1.打字軟體的正確率 編寫函式,計算字串匹配的準確率,類似於打字軟體 orginstr為原始內容,userstr為使用者輸入內容 2.模擬輪盤 遊戲 轉盤分為三部分 一等獎 二等獎和三等獎 輪盤轉的時候是隨機的,如果範圍在 0,0.08 之間,代表一等獎 如果範圍在 0.08,0.3 之間,代表二等...

python函式練習題

1 函式的定義 將可重複使用的,實現某種功能的 段組織在一起 2 函式的語法 def 函式名 引數 函式體 return 2.1 函式名是乙個變數,因此命名規則需遵守變數命名規則 3 函式的呼叫 函式名 4 函式的返回值 return 可空 none 單個 多個以tuple返回給呼叫者 5 函式的引...