-
문자열 함수
1.1 字符串拼接函数 concat(string A, string B...) 说明:返回输入字符串连接后的结果,支持任意个输入字符串 1.2 有分隔符的字符串拼接 concat_ws(string SEP, string A, string B...) 说明:返回输入字符串连接后的结果,SEP 表示各个字符串间的分隔符 1.3 数组转换成字符串 concat_ws(string SEP, array<string>) 说明:返回将数组链接成字符串后的结果,SEP 表示各个字符串间的分隔符 1.4 小数位格式化成字符串 format_number(number x, int d) 将数值 x 的小数位格式化成 d 位,四舍五入 1.5 字符串截取 substr(string A, int start, int len),substring(string A, intstart, int len) 说明:返回字符串 A 从 start 位置开始,长度为 len 的字符串 len参数不填即为结尾 1.6 字符串查找1 instr(string str, string substr) 说明:返回字符串 substr 在 str 中首次出现的位置 1.7 字符串查找2 locate(string substr, string str[, int pos]) 说明:返回字符串 substr 从pos位置开始在 str 中首次出现的位置 1.8 字符串长度 length(string A) 说明:返回字符串的长度 1.9 字符串格式化 printf(String format, Obj... args) 说明:将指定对象用 format 格式进行格式化 1.10 字符串转换成map str_to_map(text[, delimiter1, delimiter2]) 1.11 字符串转大写 upper(string A) ucase(string A) 1.12 字符串转小写 lower(string A) lcase(string A) 1.13 前后去空格 trim(string A) 1.14 左侧去空格 ltrim(string A) 1.15 右侧去空格 rtrim(string A) 1.16 json 解析函数 get_json_object(string json_string, string path) 说明:通过解析json字符串 获取某个path的值 1.17 左补足函数 lpad(string str, int len, string pad) rpad(string str, int len, string pad) 说明:将 str 进行用pad 进行左/右补足到 len 位 1.18 分割函数 split(string str, string pat) 说明:按照 pat 字符串分割str,会返回分割后的字符串数组 1.19 集合查找函数 find_in_set(string str, string strList) 说明:返回 str 在 strlist第一次出现的位置,strlist 是用逗号分割的字符串。如果没有找到该 str 字符,则返回 0 1.20 分词函数 sentences(string str, string lang, string locale) 1.21 分词后统计一起出现频次最高的 TOP-K ngrams(array<array<string>>, int N, intK, int pf) 返回值: array<struct<string,double>> 说明:与 sentences()函数一起使用,分词后,统计分词结果中一起出现频次最高的TOP-K 结果 举例: hive> SELECT ngrams(sentences('hello word!hellohive,hi hive,hello hive'),2,2) FROM test; [{"ngram":["hello","hive"],"estfrequency":2.0},{"ngram":["hive","hello"],"estfrequency":1.0}] 该查询中,统计的是两个词在一起出现频次最高的 TOP-2 结果中,hello 与 hive 同时出现 2 次 1.22 分词后统计与指定单词一起出现频次最高的 TOP-K context_ngrams(array<array<string>>,array<string>, int K, int pf) 返回值: array<struct<string,double>> 说明:与 sentences()函数一起使用,分词后,统计分词结果中与数组中指定的单词一起出现(包括顺序)频次最高的 TOP-K 结果 举例: hive>SELECT context_ngrams(sentences('hello word!hello hive,hi hive,hello hive'),array('hello',null),3) FROM test; [{"ngram":["hive"],"estfrequency":2.0},{"ngram":["word"],"estfrequency":1.0}] 该查询中,统计的是与’hello’一起出现,并且在 hello 后面的频次最高的TOP-3 结果中,hello 与 hive 同时出现 2 次,hello 与 word 同时出现 1 次。 1.23 字符串转数字 cast('00321' as bigint) 1.24 字符串反转函数 reverse(string str)
-
공통 시간 함수
2.1 时间转换固定格式字符串 from_unixtime(unix_timestamp(),’yyyy-MM-dd HH:mm:ss’) 当前时间转换为‘2019-01-01 11:11:11’ 2.2 获取当前UNIX时间戳函数 unix_timestamp() 返回bigint 2.3 日期转UNIX时间戳函数 unix_timestamp(string date) 返回bigint 2.4 日期函数UNIX时间戳转日期函数 from_unixtime(bigint unixtime[, string format]) 说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式 2.5 日期时间转日期函数 to_date(string timestamp) 2.6 年、月、日、时、分、秒获取 year(string date) month(string date) day(string date) hour(string date) minute(string date) second(string date) 2.7 日期转周函数 weekofyear (string date) 2.8 日期比较函数(天数差) datediff(string enddate, string startdate) 2.9 日期增加函数 date_add(string startdate, int days)
-
유형 변환 함수
3.1 공통 데이터 유형이 내재적으로 변환
됩니까 3.2 cast (column_name AS TYPE) 컬럼 데이터 유형을 유형으로 변환 -
조건부 판단 기능
4.1 IF判断 IF( Test Condition, True Value, False Value ) 4.2 CASE_WHEN选择 CASE [ expression ] WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... WHEN conditionn THEN resultn ELSE result END 4.3 COALESCE函数主要用来进行空值处理 COALESCE ( expression,value1,value2……,valuen) 注:逐个判断是否为空 返回非空值
-
행에서 행으로, 행에서 행으로
### 行专列
select col1,col2,concat_ws(',',collect_set(col3))
from tmp_jiangzl_test
group by col1,col2;
### 列转行
select col1, col2, col5
from tmp_jiangzl_test a
lateral view explode(split(col3,',')) b AS col5