insert overwrite table dwd_base_event_log partition(dt='2020-03-10'
)select
base_analizer(line,
'mid'
) as mid_id,
base_analizer(line,
'uid'
) as user_id,
base_analizer(line,
'vc'
) as version_code,
base_analizer(line,
'vn'
) as version_name,
base_analizer(line,
'l') as lang,
base_analizer(line,
'sr'
) as source,
base_analizer(line,
'os'
) as os,
base_analizer(line,
'ar'
) as area,
base_analizer(line,
'md'
) as model,
base_analizer(line,
'ba'
) as brand,
base_analizer(line,
'sv'
) as sdk_version,
base_analizer(line,
'g') as gmail,
base_analizer(line,
'hw'
) as height_width,
base_analizer(line,
't' base_analizer(line,
'nw'
) as network,
base_analizer(line,
'ln'
) as lng,
base_analizer(line,
'la'
) as lat,
event_name,
event_json,
base_analizer(line,
'st'
) as server_time
from ods_event_log lateral view flat_analizer(base_analizer(line,
'et'
)) tmp_flat as event_name,event_json
where dt='2020-03-10' and base_analizer(line,
'et'
)<>''
;
以此為例,將ods_event_log表的『2020-03-10』分割槽資料的 並且通過udf base_analizer()解析key為 『et』的字段不為空 的資料插入 表dwd_base_event_log 的2020-03-10分割槽。
base_analizer():udf 目的將原始資料解析成json,再根據傳入的引數解析出公共欄位mid uid cv 等
flat_analizer():udtf 目的解析出資料中含有的事件欄位en ,即一條ods_event_log欄位包含由多個en欄位組成的json集合。而此處是將其全部解析成單個。[1,2,3]-> 1,2,3
lateral view flat_analizer(base_analizer(line,『et』)) tmp_flat as event_name,event_jsonlateral view :lateral view用於和split, explode等udtf一起使用,它能夠將一行資料拆成多行資料,在此基礎上可以對拆分後的資料進行聚合。lateral view首先為原始表的每行呼叫udtf,utdf會把一行拆分成一或者多行,lateral view再把結果組合,產生乙個支援別名表的虛擬表。
此句話目的是將
name
score
小明[1,2,3]
小花[7,7,7]
轉成name
score小明1
小明2小明3
小花7小花7
小花7
Hive 指令碼執行
繼上篇ddl中load的資料繼續進行指令碼操作。hive執行指令碼 hive e sql語句 會將查詢的結果列印在控制台上。hive e sql語句 會將查詢的結果重定向到 檔案中,會顯示ok和抓取的資料條數 hive s e sql語句 會將查詢的結果重定向到 檔案中,不會顯示ok和抓取的資料條數...
Hive 執行計畫
執行語句 hive explain select s.id,s.name from student s left outer join student tmp st on s.name st.name 結果,紅色字型為我新增的注釋 hive explain select s.id,s.name fr...
Hive 推測執行
在分布式集群環境下,因為程式bug 包括hadoop本身的bug 負載不均衡或者資源分布不均等原因,會造成同乙個作業的多個任務之間執行速度不一致,有些任務的執行速度可能明顯慢於其他任務 比如乙個作業的某個任務進度只有50 而其他所有任務已經執行完畢 則這些任務會拖慢作業的整體執行進度。為了避免這種情...