Hive函數大全

Hive函數大全

現在雖然有很多SQL ON Hadoop的解決方案,像Spark SQL、Impala、Presto等等,但就目前來看,在基於Hadoop的大數據分析平臺、數據倉庫中,Hive仍然是不可替代的角色。儘管它的相應延遲大,儘管它啟動MapReduce的時間相當長,但是它太方便、功能太強大了,做離線批量計算、ad-hoc查詢甚至是實現數據挖掘算法,而且,和HBase、Spark都能整合使用。

如果你是做大數據分析平臺和數據倉庫相關的,就目前來說,我建議,Hive是必須的。

很早之前整理過Hive的函數,不過是基於0.7版本的,這兩天抽時間更新了下,基於Hive0.13,比之前的完整了許多。

整理成文檔,希望能給Hive初學者和Hive使用者有所幫助。,大家可關注weixin公眾號:大數據技術工程師 有更多大數據精彩內容等你來看,還有大數據學習資料免費領取哦,回覆關鍵字即可。

Hive函數大全 目錄:

一、關係運算:

1. 等值比較: =

2. 等值比較:<=>

3. 不等值比較: <>和!=

4. 小於比較: <

5. 小於等於比較: <=

6. 大於比較: >

7. 大於等於比較: >=

8. 區間比較

9. 空值判斷: IS NULL

10. 非空判斷: IS NOT NULL

10. LIKE比較: LIKE

11. JAVA的LIKE操作: RLIKE

12. REGEXP操作: REGEXP

二、數學運算:

1. 加法操作: +

2. 減法操作: –

3. 乘法操作: *

4. 除法操作: /

5. 取餘操作: %

6. 位與操作: &

7. 位或操作: |

8. 位異或操作: ^

9.位取反操作: ~

三、邏輯運算:

1. 邏輯與操作: AND 、&&

2. 邏輯或操作: OR 、||

3. 邏輯非操作: NOT、!

四、複合類型構造函數

1. map結構

2. struct結構

3. named_struct結構

4. array結構

5. create_union

五、複合類型操作符

1. 獲取array中的元素

2. 獲取map中的元素

3. 獲取struct中的元素

六、數值計算函數

1. 取整函數: round

2. 指定精度取整函數: round

3. 向下取整函數: floor

4. 向上取整函數: ceil

5. 向上取整函數: ceiling

6. 取隨機數函數: rand

7. 自然指數函數: exp

8. 以10為底對數函數: log10

9. 以2為底對數函數: log2

10. 對數函數: log

11. 冪運算函數: pow

12. 冪運算函數: power

13. 開平方函數: sqrt

14. 二進制函數: bin

15. 十六進制函數: hex

16. 反轉十六進制函數: unhex

17. 進制轉換函數: conv

18. 絕對值函數: abs

19. 正取餘函數: pmod

20. 正弦函數: sin

21. 反正弦函數: asin

22. 餘弦函數: cos

23. 反餘弦函數: acos

24. positive函數: positive

25. negative函數: negative

七、集合操作函數

1. map類型大小:size

2. array類型大小:size

3. 判斷元素數組是否包含元素:array_contains

4. 獲取map中所有value集合

5. 獲取map中所有key集合

6. 數組排序

八、類型轉換函數

1. 二進制轉換:binary

2. 基礎類型之間強制轉換:cast

九、日期函數

1. UNIX時間戳轉日期函數: from_unixtime

2. 獲取當前UNIX時間戳函數: unix_timestamp

3. 日期轉UNIX時間戳函數: unix_timestamp

4. 指定格式日期轉UNIX時間戳函數: unix_timestamp

5. 日期時間轉日期函數: to_date

6. 日期轉年函數: year

7. 日期轉月函數: month

8. 日期轉天函數: day

9. 日期轉小時函數: hour

10. 日期轉分鐘函數: minute

11. 日期轉秒函數: second

12. 日期轉周函數: weekofyear

13. 日期比較函數: datediff

14. 日期增加函數: date_add

15. 日期減少函數: date_sub

十、條件函數

1. If函數: if

2. 非空查找函數: COALESCE

3. 條件判斷函數:CASE

4. 條件判斷函數:CASE

十一、字符串函數

1. 字符ascii碼函數:ascii

2. base64字符串

3. 字符串連接函數:concat

4. 帶分隔符字符串連接函數:concat_ws

5. 數組轉換成字符串的函數:concat_ws

6. 小數位格式化成字符串函數:format_number

7. 字符串截取函數:substr,substring

8. 字符串截取函數:substr,substring

9. 字符串查找函數:instr

10. 字符串長度函數:length

11. 字符串查找函數:locate

12. 字符串格式化函數:printf

13. 字符串轉換成map函數:str_to_map

14. base64解碼函數:unbase64(string str)

15. 字符串轉大寫函數:upper,ucase

16. 字符串轉小寫函數:lower,lcase

17. 去空格函數:trim

18. 左邊去空格函數:ltrim

19. 右邊去空格函數:rtrim

20. 正則表達式替換函數:regexp_replace

21. 正則表達式解析函數:regexp_extract

22. URL解析函數:parse_url

23. json解析函數:get_json_object

24. 空格字符串函數:space

25. 重複字符串函數:repeat

26. 左補足函數:lpad

27. 右補足函數:rpad

28. 分割字符串函數: split

29. 集合查找函數: find_in_set

30. 分詞函數:sentences

31. 分詞後統計一起出現頻次最高的TOP-K

32. 分詞後統計與指定單詞一起出現頻次最高的TOP-K

十二、混合函數

1. 調用Java函數:java_method

2. 調用Java函數:reflect

3. 字符串的hash值:hash

十三、XPath解析XML函數

1. xpath

2. xpath_string

3. xpath_boolean

4. xpath_short, xpath_int, xpath_long

5. xpath_float, xpath_double, xpath_number

十四、彙總統計函數(UDAF)

1. 個數統計函數: count

2. 總和統計函數: sum

3. 平均值統計函數: avg

4. 最小值統計函數: min

5. 最大值統計函數: max

6. 非空集合總體變量函數: var_pop

7. 非空集合樣本變量函數: var_samp

8. 總體標準偏離函數: stddev_pop

9. 樣本標準偏離函數: stddev_samp

10.中位數函數: percentile

11. 中位數函數: percentile

12. 近似中位數函數: percentile_approx

13. 近似中位數函數: percentile_approx

14. 直方圖: histogram_numeric

15. 集合去重數:collect_set

16. 集合不去重函數:collect_list

十五、表格生成函數Table-Generating Functions (UDTF)

1. 數組拆分成多行:explode

2. Map拆分成多行:explode


分享到:


相關文章: