[TOC]
# HIve常用函數
## 函數分類

## HIVE CLI命令
> 顯示當前會話有多少函數可用
~~~
SHOW FUNCTIONS;
~~~
> 顯示函數的描述信息
~~~
DESC FUNCTION concat;
~~~

> 顯示函數的擴展描述信息
~~~
DESC FUNCTION EXTENDED concat;
~~~
## 簡單函數
> 函數的計算粒度為單條記錄。
* 關系運算
* 數學運算
* 邏輯運算
* 數值計算
* 類型轉換
* 日期函數
* 條件函數
* 字符串函數
* 統計函數
* 聚合函數
> 函數處理的數據粒度為多條記錄。
* sum()—求和
* count()—求數據量
* avg()—求平均直
* distinct—求不同值數
* min—求最小值
* max—求最人值
## 集合函數
* 復合類型構建
* 復雜類型訪問
* 復雜類型長度
## 特殊函數
### 窗口函數
> 應用場景
* 用于分區排序
* 動態Group By
* Top N
* 累計計算
* 層次查詢
* Windowing functions
~~~
lead
lag
FIRST_VALUE
LAST_VALUE
~~~
### 分析函數
> Analytics functions
~~~
RANK
ROW_NUMBER
DENSE_RANK
CUME_DIST
PERCENT_RANK
NTILE
~~~
### 混合函數
~~~
java_method(class,method [,arg1 [,arg2])reflect(class,method [,arg1 [,arg2..]])hash(a1 [,a2...])
~~~
### UDTF
~~~
lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (‘,‘ columnAlias)* fromClause: FROM baseTable (lateralView)*
~~~
> ateral view用于和split, explode等UDTF一起使用,它能夠將一行數據拆成多行數據,在此基礎上可以對拆分后的數據進行聚合。lateral view首先為原始表的每行調用UDTF,UTDF會把一行拆分成一或者多行,lateral view再把結果組合,產生一個支持別名表的虛擬表。
## 常用函數Demo:
~~~
create table employee(
id string,
money double,
type string)row format delimited
fields terminated by ‘\t‘
lines terminated by ‘\n‘
stored as textfile;load data local inpath ‘/liguodong/hive/data‘ into table employee;select * from employee;
優先級依次為NOT AND ORselect id,money from employee where (id=‘1001‘ or id=‘1002‘) and money=‘100‘;
~~~
- hadoop
- linux基礎
- Linux入門
- Linux進階
- shell
- Zookeeper
- Zookeeper簡介及部署
- Zookeeper使用及API
- Redis
- Redis簡介安裝部署
- Redis使用及API
- Java高級增強
- Java多線程增強
- Maven簡介及搭建
- Hive
- Hive簡介及安裝
- Hive操作
- HIve常用函數
- Hive數據類型
- Flume
- Flume簡介及安裝
- flume 攔截器(interceptor)
- azkaban
- azKaban簡介及安裝
- Sqoop
- Sqoop簡介及安裝
- HDFS
- HDFS原理
- HDFS操作API
- MAPREDUCE原理
- MAPREDUCE圖片資源
- MAPREDUCE加強
- HBASE
- HBASE簡介及安裝
- HBASE操作及API
- HBASE內部原理
- Storm
- Storm簡介及安裝
- Storm原理
- kafka
- kafka簡介及安裝
- kafka常用操作及API
- kafka原理
- kafka配置詳解
- Scala
- Scala簡介及安裝
- Scala基礎語法
- Scala實戰