Hive使用技巧

2021-10-07 14:20:48 字數 1091 閱讀 8984

最近的工作主要集中在資料分析,建立數倉並進行資料的分析,故記錄一些相關技巧

兩者多進行列轉行,使得乙個使用者的資料聚合到一起

不同點:collect_set去重,collect_list不去重

使用size()可以計算其中的類別個數

使用array_contains(str1,str2)判斷str1中是否包含str2

判斷不包括!array_contains(str1,str2)

主要用於列值的合併

不同點:concat_ws可以指定連線符

其他注意點:

select concat('大','小') as size from 表

查詢出結果為:大小

select concat('大',null) as size from 表

查詢出結果為:null

concat中又乙個引數為null,查出來的就為null

select concat_ws('_','大','小','中') as size from 表

查詢出結果為:大_小_中

select concat_ws('_','大','小',null) as size from 表

查詢出結果為:大_小

區別:1)get_json_object()只能解析乙個引數,json_tuple()可以解析多個引數

2)get_json_object()可以解析複雜的巢狀json,單json_tuple()不可以用於複雜的json解析

get_json_object(',],"clothes":},"name":"jane","age":"23"}', '$.shop.book[0].type') 

***********************************

get_json_object(str, '$.shop.book[0].type') ===>結果:art

json_tuple('','server','name')===>結果:www.qq.com  jack

Hive小技巧及優化

查詢除了ds 和 hr 之外的所有列 select ds hr from sales 修改表生命週期 odps alter table table name set lifecycle days 正則匹配 匹配除 n 之外的任何單個字元。要匹配包括 n 在內的任何字元,請使用像 n 的模式。解析執行...

hive之group by相關技巧

在使用hive進行分組查詢時,疑惑的一些地方進行驗證,特此記錄,也希望能給大家帶來一點幫助!hive進行分組查詢時,select多個字段,則也需要按該多個字段進行分組,例 selectyear,id type count 1 from tablename where 條件 group by year...

Hive知識之優化技巧

1 用group by替換distinct去重select user name from trade group by user name 2 使用mapjoinselect mapjoin table a a.b.from table a a join table b b on a.id b.id...