hive函数参考手册
1.内置运算符1.1关系运算符运算符类型说明A =B 所有原始类型如果A与B相等,返回TRUE,否则返回FALSEA ==B 无失败,因为无效的语法。
SQL使用”=”,不使用”==”。
A <>B 所有原始类型如果A不等于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A <B 所有原始类型如果A小于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A <=B 所有原始类型如果A小于等于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A >B 所有原始类型如果A大于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A >=B 所有原始类型如果A大于等于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A IS NULL 所有类型如果A值为”NULL”,返回TRUE,否则返回FALSEA IS NOTNULL所有类型如果A值不为”NULL”,返回TRUE,否则返回FALSEA LIKEB 字符串如果A或B值为”NULL”,结果返回”NULL”。
字符串A与B通过sql进行匹配,如果相符返回TRUE,不符返回FALSE。
B字符串中的”_”代表任一字符,”%”则代表多个任意字符。
例如:(…foobar‟like …foo‟)返回FALSE,(…foobar‟ like …foo_ _ _‟或者…foobar‟ like …foo%‟)则返回TUREA RLIKEB 字符串如果A或B值为”NULL”,结果返回”NULL”。
字符串A与B通过java进行匹配,如果相符返回TRUE,不符返回FALSE。
例如:(…foobar‟ rlike …foo‟)返回FALSE,(‟foobar‟ rlike …^f.*r$‟)返回TRUE。
A REGEXPB 字符串与RLIKE相同。
1.2算术运算符运算符类型说明A +B 所有数字类型A和B相加。
结果的与操作数值有共同类型。
例如每一个整数是一个浮点数,浮点数包含整数。
所以,一个浮点数和一个整数相加结果也是一个浮点数。
A –B 所有数字类型A和B相减。
结果的与操作数值有共同类型。
A *B 所有数字类型A和B相乘,结果的与操作数值有共同类型。
需要说明的是,如果乘法造成溢出,将选择更高的类型。
A /B 所有数字类型A和B相除,结果是一个double(双精度)类型的结果。
A %B 所有数字类型A除以B余数与操作数值有共同类型。
A &B 所有数字类型运算符查看两个参数的二进制表示法的值,并执行按位”与”操作。
两个表达式的一位均为1时,则结果的该位为1。
否则,结果的该位为0。
A|B 所有数字类型运算符查看两个参数的二进制表示法的值,并执行按位”或”操作。
只要任一表达式的一位为1,则结果的该位为1。
否则,结果的该位为0。
A ^B 所有数字类型运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作。
当且仅当只有一个表达式的某位上为 1 时,结果的该位才为1。
否则结果的该位为0。
~A 所有数字类型对一个表达式执行按位”非”(取反)。
1.3逻辑运算符运算符类型说明A ANDB 布尔值A和B同时正确时,返回TRUE,否则FALSE。
如果A或B值为NULL,返回NULL。
A &&B 布尔值与”A AND B”相同A ORB 布尔值A或B正确,或两者同时正确返返回TRUE,否则FALSE。
如果A和B值同时为NULL,返回NULL。
A |B 布尔值与”A OR B”相同NOT A 布尔值如果A为NULL或错误的时候返回TURE,否则返回FALSE。
! A 布尔值与”NOT A”相同1.4复杂类型函数函数类型说明map (key1, value1, key2, value2, …) 通过指定的键/值对,创建一个map。
struct (val1, val2, val3, …) 通过指定的字段值,创建一个结构。
结构字段名称将COL1,COL2,…array (val1, val2, …) 通过指定的元素,创建一个数组。
1.5对复杂类型函数操作函数类型说明A[n] A是一个数组,n为int型返回数组A的第n个元素,第一个元素的索引为0。
如果A数组为['foo','bar'],则A[0]返回‟foo‟和A[1]返回”bar”。
M[key] M是Map<K, V>,关键K型返回关键值对应的值,例如mapM为\{…f‟ -> …foo‟, …b‟ -> …bar‟, …all‟ -> …foobar‟\},则M['all'] 返回‟foobar‟。
S.x S为struct 返回结构x字符串在结构S中的存储位置。
如foobar \{int foo, int bar\} foobar.foo的领域中存储的整数。
2.内置函数2.1数学函数返回类型函数说明BIGINT round(double a) 四舍五入DOUBLE round(double a, int d) 小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26BIGINT floor(double a) 对给定数据进行向下舍入最接近的整数。
例如floor(21.2),返回21。
BIGINT ceil(double a),ceiling(double a)将参数向上舍入为最接近的整数。
例如ceil(21.2),返回23.double rand(), rand(int seed) 返回大于或等于0且小于1的平均分布随机数(依重新计算而变)double exp(double a) 返回e的n次方double ln(double a) 返回给定数值的自然对数double log10(double a) 返回给定数值的以10为底自然对数double log2(double a) 返回给定数值的以2为底自然对数double log(double base, double a) 返回给定底数及指数返回自然对数double pow(double a, double p)power(double a, double p)返回某数的乘幂double sqrt(double a) 返回数值的平方根string bin(BIGINT a) 返回二进制格式,参考:/doc/refman/5.0/en/string -functions.html#function_hexstring hex(BIGINT a) hex(string a) 将整数或字符转换为十六进制格式。
参考:/doc/refman/5.0/en/string -functions.html#function_hexstring unhex(string a) 十六进制字符转换由数字表示的字符。
string conv(BIGINT num, intfrom_base, int to_base)将指定数值,由原来的度量体系转换为指定的试题体系。
例如CONV(…a‟,16,2),返回。
参考:‟1010′/doc/refman/5.0/en/mathematical-functions.html#function_convdouble abs(double a) 取绝对值int double pmod(int a, int b)pmod(double a, double b)返回a除b的余数的绝对值double sin(double a) 返回给定角度的正弦值double asin(double a) 返回x的反正弦,即是X。
如果X是在-1到1的正弦值,返回NULL。
double cos(double a) 返回余弦double acos(double a) 返回X的反余弦,即余弦是X,,如果-1<= A <= 1,否则返回null.int double positive(int a) 返回A的值,例如positive(2),返回2。
positive(double a)int double negative(int a)negative(double a)返回A的相反数,例如negative(2),返回-2。
2.2收集函数返回类型函数说明int size(Map<K.V>) 返回的map类型的元素的数量int size(Array<T>) 返回数组类型的元素数量2.3类型转换函数返回类型函数说明指定“type”cast(expr as<type>)类型转换。
例如将字符”1″转换为整数:cast(‟1′ as bigint),如果转换失败返回NULL。
2.4日期函数返回类型函数说明string from_unixtime(bigintunixtime[, string format])UNIX_TIMESTAMP参数表示返回一个值‟YYYY- MM –DDHH:MM:SS‟或YYYYMMDDHHMMSS.uuuuuu格式,这取决于是否是在一个字符串或数字语境中使用的功能。
该值表示在当前的时区。
bigint unix_timestamp() 如果不带参数的调用,返回一个Unix时间戳(从‟1970- 01 – 0100:00:00′到现在的UTC秒数)为无符号整数。
bigint unix_timestamp(stringdate)指定日期参数调用UNIX_TIMESTAMP(),它返回参数值‟1970- 01 – 0100:00:00′到指定日期的秒数。
bigint unix_timestamp(stringdate, string pattern)指定时间输入格式,返回到1970年秒数:unix_timestamp(‟2009-03-20′, …yyyy-MM-dd‟) =1237532400 参考:/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.htmlstring to_date(string timestamp) 返回时间中的年月日:to_date(“1970-01-01 00:00:00″) = “1970-01-01″string to_dates(string date) 给定一个日期date,返回一个天数(0年以来的天数)int year(string date) 返回指定时间的年份,范围在1000到9999,或为”零”日期的0。
HIVE常用正则函数(like、rlike、regexp、regexp_replace、r。。。
HIVE常⽤正则函数(like、rlike、regexp、regexp_replace、r。
Oralce中regex_like和hive的regexp对应LIKE语法1: A LIKE B语法2: LIKE(A, B)操作类型: strings返回类型: boolean或null描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE。
B中字符"_"表⽰任意单个字符,⽽字符"%"表⽰任意数量的字符。
hive> select 'football' like '%ba';OKfalsehive> select 'football' like '%ba%';OKtruehive> select 'football' like '__otba%';OKtruehive> select like('football', '__otba%');OKtrueRLIKE语法1: A RLIKE B语法2: RLIKE(A, B)操作类型: strings返回类型: boolean或null描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。
hive> select 'football' rlike 'ba';OKtruehive> select 'football' rlike '^footba';OKtruehive> select rlike('football', 'ba');OKtrueJava正则:"." 任意单个字符"*" 匹配前⾯的字符0次或多次"+" 匹配前⾯的字符1次或多次"?" 匹配前⾯的字符0次或1次"\d" 等于 [0-9],使⽤的时候写成'\d'"\D" 等于 [^0-9],使⽤的时候写成'\D'hive> select 'does' rlike 'do(es)?';OKtruehive> select '\\';OK\hive> select '2314' rlike '\\d+';OKtrueREGEXP语法1: A REGEXP B语法2: REGEXP(A, B)操作类型: strings返回类型: boolean或null描述: 功能与RLIKE相同hive> select 'football' regexp 'ba';OKtruehive> select 'football' regexp '^footba';OKtruehive> select regexp('football', 'ba');OKtrue语法: regexp_replace(string A, string B, string C)操作类型: strings返回值: string说明: 将字符串A中的符合java正则表达式B的部分替换为C。
hive常用函数参考手册
函数分类HIVE CLI命令显示当前会话有多少函数可用SHOW FUNCTIONS;显示函数的描述信息DESC FUNCTION concat;显示函数的扩展描述信息DESC FUNCTION EXTENDED concat; 简单函数函数的计算粒度为单条记录。
关系运算数学运算逻辑运算数值计算类型转换日期函数条件函数字符串函数统计函数聚合函数函数处理的数据粒度为多条记录。
sum()—求和count()—求数据量avg()—求平均直distinct—求不同值数min—求最小值max—求最人值集合函数复合类型构建复杂类型访问复杂类型长度特殊函数窗口函数应用场景用于分区排序动态Group ByTop N累计计算层次查询Windowing functionsleadlagFIRST_VALUELAST_VALUE分析函数Analytics functionsRANKROW_NUMBERDENSE_RANKCUME_DISTPERCENT_RANKNTILE混合函数java_method(class,method [,arg1 [,arg2])reflect(class,method [,arg1 [,arg2..]])hash(a1 [,a2...])UDTFlateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias(‘,‘ columnAlias)*fromClause: FROM baseTable (lateralView)*ateral view用于和split, explode等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。
lateral view首先为原始表的每行调用UDTF,UTDF会把一行拆分成一或者多行,lateral view再把结果组合,产生一个支持别名表的虚拟表。
HIVE函数大全
HIVE函数⼤全Hive函数⼤全⽬录:⼀、关系运算:1. 等值⽐较: =2. 等值⽐较:<=>3. 不等值⽐较: <>和!=4. ⼩于⽐较: <5. ⼩于等于⽐较: <=6. ⼤于⽐较: >7. ⼤于等于⽐较: >=8. 区间⽐较9. 空值判断: IS NULL10. ⾮空判断: IS NOT NULL10. LIKE⽐较: LIKE11. JAVA的LIKE操作: RLIKE12. 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. 取整函数: round2. 指定精度取整函数: round3. 向下取整函数: floor4. 向上取整函数: ceil5. 向上取整函数: ceiling6. 取随机数函数: rand7. ⾃然指数函数: exp8. 以10为底对数函数: log109. 以2为底对数函数: log210. 对数函数: log11. 幂运算函数: pow12. 幂运算函数: power13. 开平⽅函数: sqrt14. ⼆进制函数: bin15. ⼗六进制函数: hex16. 反转⼗六进制函数: unhex17. 进制转换函数: conv18. 绝对值函数: abs19. 正取余函数: pmod20. 正弦函数: sin21. 反正弦函数: asin22. 余弦函数: cos23. 反余弦函数: acos24. positive函数: positive25. negative函数: negative七、集合操作函数1. map类型⼤⼩:size2. array类型⼤⼩:size3. 判断元素数组是否包含元素:array_contains4. 获取map中所有value集合5. 获取map中所有key集合6. 数组排序⼋、类型转换函数1. ⼆进制转换:binary2. 基础类型之间强制转换:cast九、⽇期函数1. UNIX时间戳转⽇期函数: from_unixtime2. 获取当前UNIX时间戳函数: unix_timestamp3. ⽇期转UNIX时间戳函数: unix_timestamp4. 指定格式⽇期转UNIX时间戳函数: unix_timestamp5. ⽇期时间转⽇期函数: to_date6. ⽇期转年函数: year7. ⽇期转⽉函数: month8. ⽇期转天函数: day9. ⽇期转⼩时函数: hour10. ⽇期转分钟函数: minute11. ⽇期转秒函数: second12. ⽇期转周函数: weekofyear13. ⽇期⽐较函数: datediff14. ⽇期增加函数: date_add15. ⽇期减少函数: date_sub⼗、条件函数1. If函数: if2. ⾮空查找函数: COALESCE3. 条件判断函数:CASE4. 条件判断函数:CASE⼗⼀、字符串函数1. 字符ascii码函数:ascii2. base64字符串3. 字符串连接函数:concat4. 带分隔符字符串连接函数:concat_ws5. 数组转换成字符串的函数:concat_ws6. ⼩数位格式化成字符串函数:format_number7. 字符串截取函数:substr,substring8. 字符串截取函数:substr,substring9. 字符串查找函数:instr10. 字符串长度函数:length11. 字符串查找函数:locate12. 字符串格式化函数:printf13. 字符串转换成map函数:str_to_map14. base64解码函数:unbase64(string str)15. 字符串转⼤写函数:upper,ucase16. 字符串转⼩写函数:lower,lcase17. 去空格函数:trim18. 左边去空格函数:ltrim19. 右边去空格函数:rtrim20. 正则表达式替换函数:regexp_replace21. 正则表达式解析函数:regexp_extract22. URL解析函数:parse_url23. json解析函数:get_json_object24. 空格字符串函数:space25. 重复字符串函数:repeat26. 左补⾜函数:lpad27. 右补⾜函数:rpad28. 分割字符串函数: split29. 集合查找函数: find_in_set30. 分词函数:sentences31. 分词后统计⼀起出现频次最⾼的TOP-K32. 分词后统计与指定单词⼀起出现频次最⾼的TOP-K ⼗⼆、混合函数1. 调⽤Java函数:java_method2. 调⽤Java函数:reflect3. 字符串的hash值:hash⼗三、XPath解析XML函数1. xpath2. xpath_string3. xpath_boolean4. xpath_short, xpath_int, xpath_long5. xpath_float, xpath_double, xpath_number⼗四、汇总统计函数(UDAF)1. 个数统计函数: count2. 总和统计函数: sum3. 平均值统计函数: avg4. 最⼩值统计函数: min5. 最⼤值统计函数: max6. ⾮空集合总体变量函数: var_pop7. ⾮空集合样本变量函数: var_samp8. 总体标准偏离函数: stddev_pop9. 样本标准偏离函数: stddev_samp10.中位数函数: percentile11. 中位数函数: percentile12. 近似中位数函数: percentile_approx13. 近似中位数函数: percentile_approx14. 直⽅图: histogram_numeric15. 集合去重数:collect_set16. 集合不去重函数:collect_list⼗五、表格⽣成函数Table-Generating Functions (UDTF)1. 数组拆分成多⾏:explode2. Map拆分成多⾏:explode。
hive函数大全
目录一、关系运算: (4)1. 等值比较: = (4)2. 不等值比较: <> (4)3. 小于比较: < (4)4. 小于等于比较: <= (4)5. 大于比较: > (5)6. 大于等于比较: >= (5)7. 空值判断: IS NULL (5)8. 非空判断: IS NOT NULL (6)9. LIKE比较: LIKE (6)10. JAVA的LIKE操作: RLIKE (6)11. REGEXP操作: REGEXP (7)二、数学运算: (7)1. 加法操作: + (7)2. 减法操作: - (7)3. 乘法操作: * (8)4. 除法操作: / (8)5. 取余操作: % (8)6. 位与操作: & (9)7. 位或操作: | (9)8. 位异或操作: ^ (9)9.位取反操作: ~ (10)三、逻辑运算: (10)1. 逻辑与操作: AND (10)2. 逻辑或操作: OR (10)3. 逻辑非操作: NOT (10)四、数值计算 (11)1. 取整函数: round (11)2. 指定精度取整函数: round (11)3. 向下取整函数: floor (11)4. 向上取整函数: ceil (12)5. 向上取整函数: ceiling (12)6. 取随机数函数: rand (12)7. 自然指数函数: exp (13)8. 以10为底对数函数: log10 (13)9. 以2为底对数函数: log2 (13)10. 对数函数: log (13)11. 幂运算函数: pow (14)12. 幂运算函数: power (14)13. 开平方函数: sqrt (14)14. 二进制函数: bin (14)15. 十六进制函数: hex (15)16. 反转十六进制函数: unhex (15)17. 进制转换函数: conv (15)18. 绝对值函数: abs (16)19. 正取余函数: pmod (16)20. 正弦函数: sin (16)21. 反正弦函数: asin (16)22. 余弦函数: cos (17)23. 反余弦函数: acos (17)24. positive函数: positive (17)25. negative函数: negative (17)五、日期函数 (18)1. UNIX时间戳转日期函数: from_unixtime (18)2. 获取当前UNIX时间戳函数: unix_timestamp (18)3. 日期转UNIX时间戳函数: unix_timestamp (18)4. 指定格式日期转UNIX时间戳函数: unix_timestamp (18)5. 日期时间转日期函数: to_date (19)6. 日期转年函数: year (19)7. 日期转月函数: month (19)8. 日期转天函数: day (19)9. 日期转小时函数: hour (20)10. 日期转分钟函数: minute (20)11. 日期转秒函数: second (20)12. 日期转周函数: weekofyear (20)13. 日期比较函数: datediff (21)14. 日期增加函数: date_add (21)15. 日期减少函数: date_sub (21)六、条件函数 (21)1. If函数: if (21)2. 非空查找函数: COALESCE (22)3. 条件判断函数:CASE (22)4. 条件判断函数:CASE (22)七、字符串函数 (23)1. 字符串长度函数:length (23)2. 字符串反转函数:reverse (23)3. 字符串连接函数:concat (23)4. 带分隔符字符串连接函数:concat_ws (23)5. 字符串截取函数:substr,substring (24)6. 字符串截取函数:substr,substring (24)7. 字符串转大写函数:upper,ucase (24)8. 字符串转小写函数:lower,lcase (25)9. 去空格函数:trim (25)10. 左边去空格函数:ltrim (25)11. 右边去空格函数:rtrim (25)12. 正则表达式替换函数:regexp_replace (26)13. 正则表达式解析函数:regexp_extract (26)14. URL解析函数:parse_url (26)15. json解析函数:get_json_object (27)16. 空格字符串函数:space (27)17. 重复字符串函数:repeat (27)18. 首字符ascii函数:ascii (28)19. 左补足函数:lpad (28)20. 右补足函数:rpad (28)21. 分割字符串函数: split (28)22. 集合查找函数: find_in_set (29)八、集合统计函数 (29)1. 个数统计函数: count (29)2. 总和统计函数: sum (29)3. 平均值统计函数: avg (30)4. 最小值统计函数: min (30)5. 最大值统计函数: max (30)6. 非空集合总体变量函数: var_pop (30)7. 非空集合样本变量函数: var_samp (31)8. 总体标准偏离函数: stddev_pop (31)9. 样本标准偏离函数: stddev_samp (31)10.中位数函数: percentile (31)11. 中位数函数: percentile (31)12. 近似中位数函数: percentile_approx (32)13. 近似中位数函数: percentile_approx (32)14. 直方图: histogram_numeric (32)九、复合类型构建操作 (32)1. Map类型构建: map (32)2. Struct类型构建: struct (33)3. array类型构建: array (33)十、复杂类型访问操作 (33)1. array类型访问: A[n] (33)2. map类型访问: M[key] (34)3. struct类型访问: S.x (34)十一、复杂类型长度统计函数 (34)1. Map类型长度函数: size(Map<K.V>) (34)2. array类型长度函数: size(Array<T>) (34)3. 类型转换函数 (35)一、关系运算:1. 等值比较: =语法:A=B操作类型:所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1=1;12. 不等值比较: <>语法: A <> B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 <> 2;13. 小于比较: <语法: A < B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 < 2;14. 小于等于比较: <=语法: A <= B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于或者等于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 <= 1;15. 大于比较: >语法: A > B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 2 > 1;16. 大于等于比较: >=语法: A >= B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于或者等于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 >= 1;1注意:String的比较要注意(常用的时间比较可以先to_date之后再比较)hive> select * from lxw_dual;OK2011111209 00:00:00 2011111209hive> select a,b,a<b,a>b,a=b from lxw_dual;2011111209 00:00:00 2011111209 false true false7. 空值判断: IS NULL语法: A IS NULL操作类型: 所有类型描述: 如果表达式A的值为NULL,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where null is null;18. 非空判断: IS NOT NULL语法: A IS NOT NULL操作类型: 所有类型描述: 如果表达式A的值为NULL,则为FALSE;否则为TRUE举例:hive> select 1 from lxw_dual where 1 is not null;19. LIKE比较: LIKE语法: A LIKE B操作类型: strings描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。
hive中的常用函数
Hive是一种基于Hadoop的数据仓库工具,用于处理大规模数据集。
以下是Hive中常用的一些函数:
聚合函数:
COUNT:计算行数或非NULL值的数量。
SUM:计算数值列的总和。
AVG:计算数值列的平均值。
MIN:找出数值列的最小值。
MAX:找出数值列的最大值。
字符串函数:
CONCAT:连接两个或多个字符串。
LENGTH:返回字符串的长度。
SUBSTR:截取字符串的子串。
TRIM:去除字符串首尾的空格。
LOWER/UPPER:将字符串转换为小写/大写。
时间日期函数:
YEAR/MONTH/DAY:提取日期字段中的年份/月份/日份。
HOUR/MINUTE/SECOND:提取时间字段中的小时/分钟/秒数。
TO_DATE:将字符串转换为日期格式。
条件函数:
IF/ELSE:根据条件返回不同的值。
CASE WHEN/THEN/ELSE/END:根据多个条件返回不同的值。
数学函数:
ABS:返回数值的绝对值。
ROUND:对数值进行四舍五入。
RAND:生成一个随机数。
EXP:返回指定数值的指数值。
LOG:计算数值的自然对数。
这只是Hive中一些常用的函数示例,实际上Hive提供了更多的函数用于处理数据。
你可以根据具体的需求在Hive官方文档中查找更多详细的函数说明和用法。
Hive函数及语法说明
无线增值产品部Hive函数及语法说明版本:Hive 0.7.0.001eagooqi2011-7-19版本日期修订人描述V1.0 2010-07-20 eagooqi 初稿2012-1-4 Eagooqi ||、cube目录⏹函数说明 (2)⏹内置函数 (2)⏹增加oracle函数 (14)⏹增加业务函数 (17)⏹扩展函数开发规范 (19)⏹语法说明 (21)⏹内置语法 (21)⏹增加语法 (28)⏹扩展语法开发规范(语法转换) (29)⏹ORACLE sql 对应的hSQL语法支持 (29)⏹函数说明参考链接:https:///confluence/display/Hive/LanguageManualCLI下,使用以下命令显示最新系统函数说明SHOW FUNCTIONS;DESCRIBE FUNCTION <function_name>;DESCRIBE FUNCTION EXTENDED <function_name>;⏹内置函数数值函数Mathematical Functions集合函数Collection Functions类型转换函数Type Conversion Functions日期函数Date Functions条件判断函数Conditional Functions字符串函数String Functions其他函数Misc. FunctionsxpathThe following functions are described in [Hive-LanguageManual-XPathUDF]:∙xpath, xpath_short, xpath_int, xpath_long, xpath_float, xpath_double, xpath_number, xpath_stringget_json_objectA limited version of JSONPath is supported:∙$ : Root object∙. : Child operator∙[] : Subscript operator for array∙* : Wildcard for []Syntax not supported that's worth noticing:∙: Zero length string as key∙.. : Recursive descent∙@ : Current object/element∙() : Script expression∙?() : Filter (script) expression.∙[,] : Union operator∙[start:end.step] : array slice operatorExample: src_json table is a single column (json), single row table:json{"store":{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}], "bicycle":{"price":19.95,"color":"red"}},"email":"amy@only_for_json_udf_","owner":"amy"}The fields of the json object can be extracted using these queries:hive> SELECT get_json_object(src_json.json, '$.owner') FROM src_json; amyhive> SELECT get_json_object(src_json.json, '$.store.fruit[0]') FROM src_json;{"weight":8,"type":"apple"}hive> SELECT get_json_object(src_json.json, '$.non_exist_key') FROM src_json;NULL内置聚合函数Built-in Aggregate Functions (UDAF)增加oracle函数增加业务函数扩展函数开发规范提供以下两种实现方式:a继承org.apache.hadoop.hive.ql.exec.UDF类代码包为:package org.apache.hadoop.hive.ql.udf实现evaluate方法,根据输入参数和返回参数类型,系统自动转换到匹配的方法实现上。
hive常用的的函数 -回复
hive常用的的函数-回复"Hive常用的函数"Hive是一个基于Hadoop的数据仓库工具,用于对大规模数据进行处理和分析。
在Hive中,函数是使用HiveQL查询语言进行数据操作和转换的重要工具。
本文将深入探讨Hive中常用的函数,并逐步介绍它们的用法和示例。
一、Hive内置函数Hive提供了多种内置函数,用于在查询中执行各种操作,如数学计算、条件判断、字符串处理等。
下面是Hive中一些常用的内置函数:1.数学函数- ABS(x): 返回x的绝对值。
- ROUND(x [, d]): 返回离x最近的整数,如果d给出,返回到小数点后d位的近似值。
示例:SELECT ABS(-10), ROUND(3.14159, 2);2.字符串函数- CONCAT(str1, str2, ...): 返回连接多个字符串得到的结果。
- LENGTH(str): 返回字符串的字符个数。
示例:SELECT CONCAT('Hello', 'World'), LENGTH('Hive');3.日期和时间函数- CURRENT_TIMESTAMP(): 返回当前的日期和时间。
- YEAR(date), MONTH(date), DAY(date): 返回给定日期的年、月、日。
示例:SELECT CURRENT_TIMESTAMP(), YEAR('2022-09-01'),MONTH('2022-09-01'), DAY('2022-09-01');4.条件函数- CASE WHEN condition THEN result [WHEN condition THEN result ...] [ELSE result] END: 对条件进行判断并返回不同的结果。
示例:SELECT CASE WHEN age < 18 THEN 'Child' ELSE 'Adult' END;二、自定义函数除了内置函数,Hive还支持用户自定义函数,这使得我们可以根据特定需求自定义函数来处理数据。
hive常用的的函数
hive常用的的函数Hive提供了一种简单的SQL查询语言称为HiveQL,它允许数据工程师、数据分析师和应用程序开发人员查询和管理大规模数据。
以下是Hive中常用的一些函数:1. 字符串函数:`length(string)`: 返回字符串的长度。
`concat(string1, string2, ...)`: 连接两个或多个字符串。
`substr(string, start, length)`: 返回字符串的子串。
`trim(string)`: 去除字符串两端的空格。
`ltrim(string)`: 去除字符串左端的空格。
`rtrim(string)`: 去除字符串右端的空格。
2. 数值函数:`abs(bigint)`: 返回整数的绝对值。
`ceil(double)`: 返回大于或等于给定数字的最小整数。
`floor(double)`: 返回小于或等于给定数字的最大整数。
`round(double, ndigits)`: 返回四舍五入的值,其中ndigits是精度。
`mod(int, int)`: 返回第一个参数除以第二个参数的余数。
3. 日期函数:`current_date()`: 返回当前日期。
`from_unixtime(unix_timestamp[, format])`: 将UNIX时间戳转换为指定格式的日期时间。
`unix_timestamp()`: 将当前日期和时间转换为UNIX时间戳(以秒为单位)。
`date_format(date, format)` or `date_format(timestamp, format)`: 将日期/时间值格式化为指定的字符串格式。
4. 聚合函数:`count(), count(column)`: 计算行数或非NULL值的数量。
`sum(column)`: 计算列的总和。
`avg(column)`: 计算列的平均值。
`min(column)`: 返回列中的最小值。
hive 常用的函数
Apache Hive 是一个基于Hadoop 的数据仓库工具,它提供了类似SQL 的查询语言HiveQL 来处理大规模的数据集。
以下是一些Hive 中常用的函数类别及示例:1. 数学与舍入函数•ABS(x): 返回x 的绝对值。
•FLOOR(x): 对浮点数x 进行向下取整。
•CEIL(x): 对浮点数x 进行向上取整。
•ROUND(x[, d]): 对数字x 进行四舍五入,d(可选)表示要保留的小数位数。
2. 字符串函数•LENGTH(str): 返回字符串str 的长度。
•LOWER(str)或lcase(str): 将字符串转换为小写。
•UPPER(str)或ucase(str): 将字符串转换为大写。
•CONCAT(string1, string2,...): 连接多个字符串。
•TRIM([BOTH|LEADING|TRAILING] 'chars' FROM str): 删除字符串两侧或指定一侧的字符。
3. 日期和时间函数•FROM_UNIXTIME(epoch, format): 将Unix 时间戳转换为日期格式。
•UNIX_TIMESTAMP(): 获取当前Unix 时间戳。
•DATE_FORMAT(date_expression, format_string): 格式化日期表达式。
•YEAR(date), MONTH(date), DAY(date): 提取日期中的年、月、日部分。
4. 聚合函数•COUNT(*): 统计行数。
•SUM(column): 计算某一列的总和。
•AVG(column): 计算平均值。
•MAX(column): 找出一列的最大值。
•MIN(column): 找出一列的最小值。
•GROUP_CONCAT(column): 合并一组值为单个字符串(在某些版本的Hive 中可用)。
5. 集合函数•COLLECT_SET(column): 返回一组唯一的值组成的集合,无序且会去除重复值。
hive查询函数用法
hive查询函数用法Hive是一个基于Hadoop的数据仓库工具,它提供了丰富的查询函数来处理和转换数据。
下面是一些常见的Hive查询函数及其用法:1. COUNT():用于计算指定列或行的数量。
使用方法:SELECT COUNT(column_name) FROM table_name;2. SUM():用于计算指定列的总和。
使用方法:SELECT SUM(column_name) FROM table_name;3. A VG():用于计算指定列的平均值。
使用方法:SELECT A VG(column_name) FROM table_name;4. MIN():用于获取指定列的最小值。
使用方法:SELECT MIN(column_name) FROM table_name;5. MAX():用于获取指定列的最大值。
使用方法:SELECT MAX(column_name) FROM table_name;6. GROUP BY:用于按照指定列对结果进行分组,并对每个组应用聚合函数。
使用方法:SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name;7. HA VING:用于在GROUP BY之后过滤分组结果。
使用方法:SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name HA VING condition;8. CONCAT():用于连接多个字符串。
使用方法:SELECT CONCAT(column1, column2) FROM table_name;9. SUBSTRING():用于提取字符串的子串。
使用方法:SELECT SUBSTRING(column_name, start_index, length) FROM table_name;10. DATE_FORMAT():用于将日期格式化为指定的字符串格式。
