hive 解密 Hive 常用函式

2021-10-13 01:49:59 字數 2554 閱讀 9047

2. concat(str1,sep,str2,sep,str3,……) 和 concat_ws(sep,str1,str2,str3, ……)

字串連線函式,需要是 string型字段。

如果4個字段,想得到如下結果,看下兩個函式的區別:

eg:**1: select concat('江蘇省','-','南京市','-','玄武區','-','徐莊軟體園');

**2: select concat_ws('-','江蘇省','南京市','玄武區','徐莊軟體園');

結論:當連線的內容(字段)多於2個的時候,concat_ws的優勢就顯現了,寫法簡單、方便。

3. unix_timestamp() 當前系統時間

unix_timestamp() 是將當前系統時間轉換成數字型秒數,from_unixtime 將數字型按照 格式進行時間轉換。

eg:**:select from_unixtime(unix_timestamp(),'yyyy-mm-dd hh:mm:ss');

4. regexp_replace(string a, string b, string c) 字串替換函式,將字串a 中的b 用 c 替換。

eg:**:select regexp_replace('www.tuniu.com','tuniu','jd');

5. repeat(string str, int n) 重複n次字串

eg:**:select repeat('ab',3);

6. lpad(string str, int len, string pad) 將字串str 用pad進行左補足 到len位(如果位數不足的話)

eg:**:select lpad('ab',7,'k');

7. rpad(string str, int len, string pad) 將字串str 用pad進行右補足 到len位(如果位數不足的話)

eg:**:select rpad('ab',7,'k');

8. trim(string a) 刪除字串兩邊的空格,中間的會保留。

相應的 ltrim(string a) ,rtrim(string a)

eg:9. to_date(string timestamp) 將時間戳轉換成日期型字串

eg:**:select to_date('2017-01-16 09:55:54');

10. datediff(string enddate, string startdate) 返回int 的兩個日期差

eg:**:select datediff('2017-01-16', '2017-01-10');

11. date_add(string startdate, int days) 日期加減

eg:**:select date_add('2017-01-10', 7);

12. current_timestamp 和 current_date 返回當前時間戳,當前日期

eg:13. date_format(date/timestamp/string ts, string fmt) 按照格式返回字串

eg:**:select date_format('2017-01-16 09:55:54', 'yyyy-mm-dd');

14. last_day(string date) 返回 當前時間的月末日期

eg:**:select last_day('2017-01-16 09:55:54');

15. if(boolean testcondition, t valuetrue, t valuefalseornull) ,根據條件返回不同的值

eg:16. nvl(t value, t default_value) 如果t is null ,返回預設值

17. length(string a) 返回字串a的長度

eg:**:select length('kimbo');

18. greatest(t v1, t v2, ...) 返回最大值,會過濾null

eg:**:select greatest('2016-01-01',null,'2017-01-01');

19. least(t v1, t v2, ...) 返回最小值,會過濾null

eg:**:select least('2016-01-01',null,'2017-01-01','2015-01-01');

20. rand(), 返回0-1的隨機值。rand(int seed) 返回固定的隨機值。

eg:21. md5(string/binary)  hive 1.3以上版本,返回md5碼

22. split(str, regex) ,安裝規則擷取字串,返回陣列

eg:**:select split('ab-cd','-')[0];

如果是特殊字段,需要轉義,如:select split('大阪酒店|$新麗飯店','\\|\\$')[0];

23. rlike ,正規表示式

eg:**:select "kimbo789" rlike '^\\d*$' ;

說明:匹配全數字的字串

------------------------傳送門------------------------

Hive常用函式

if判斷 select if 1 1,yes no 返回yes 語法 case expression when condition1 then result1 when condition2 then result2 else result end 例子 case a when 1 then one...

hive常用函式

hive常用函式 1 檢視函式用法 desc function 函式名 desc function extended 函式名 2 獲取array陣列長度 size函式 select size collect list field from table select size split hello ...

Hive常用函式

常用日期函式 unix timestamp 返回當前或指定時間的時間戳 from unixtime 將時間戳轉為日期格式 current date 當前日期 current timestamp 當前的日期加時間 to date 抽取日期部分 year 獲取年 month 獲取月 day 獲取日 ho...