好程序员大数据学习路线蜂巢内部函数

  

好程序员大数据学习路线hive内部函数,持续为大家更新了大数据学习路线,希望对正在学习大数据的小伙伴有所帮助。
1、取随机数函数:rand()
语法: rand(),rand(int seed) 返回值: double 说明: 返回一个0到1范围内的随机数。如果指定seed,则会得到一个稳定的随机数序列
select rand();
select rand(10);
2、分割字符串函数:split(str,splitor)
语法: split(string str, string pat) 返回值: array 说明: 按照pat字符串分割str,会返回分割后的字符串数组,注意特殊分割符的转义
select split(5.0,".")[0];
select split(rand(10)100,".")[0];
3、字符串截取函数:substr,substring
语法: substr(string A, int start),substring(string A, int start) 返回值: string 说明:返回字符串A从start位置到结尾的字符串
语法: substr(string A, int start, int len),substring(string A, int start, int len) 返回值: string 说明:返回字符串A从start位置开始,长度为len的字符串
select substr(rand()
100,0,2);
select substring(rand()100,0,2);
4、If函数:if
语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull) 返回值: T 说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
select if(100>10,"this is true","this is false");
select if(2=1,"男","女");
select if(1=1,"男",(if(1=2,"女","不知道")));
select if(3=1,"男",(if(3=2,"女","不知道")));
5、条件判断函数:CASE
第一种格式:
语法: CASE WHEN a THEN b [WHEN c THEN d]
[ELSE e] END 返回值: T 说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e
第二种格式:
语法: CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END 返回值: T 说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f
select
case 6
when 1 then "100"
when 2 then "200"
when 3 then "300"
when 4 then "400"
else "others"
end
;
# #创建表
create table如果不存在连续波(
标记int
)
,
数据加载本地inpath“/home/旗帜”到表连续波;
# #第一种格式
选择
c。国旗
当1,100,
当2,200,
当3“300“
当4“400“
其他“others"

结束从连续波c
;
# #第二种格式
选择

当1=c。标记“100“
当2=c。标记“200“
当3=c。标记“300“
当4=c。国旗“400“
其他“others"

结束从连续波c
,
6,正则表达式替换函数:regexp_replace
语法:regexpreplace(字符串,字符串,字符串c)返回值:字符串说明:将字符串一个中的符合java正则表达式B的部分替换为c .注意,在有些情况下要使用转义字符,类似甲骨文中的regexpreplace函数
的选择regexp_replace (“1. jsp",“.jsp",“.html");
7类型转换函数:铸
语法:把(expr)返回值:将“=?遵循“type"说明:返回转换后的数据类型
选择1;
选择演员(1双);
选择演员(“12”;作为int);
8字符串连接函数:concat;带分隔符字符串连接函数:concat_ws
语法:concat(字符串,字符串B…)返回值:字符串说明:返回输入字符串连接后的结果,支持任意个输入字符串
语法:concat_ws(9月字符串,字符串,字符串B…)返回值:字符串说明:返回输入字符串连接后的结果,9月表示各个字符串间的分隔符
选择“千峰“;+ 1603 +“班级“;
选择concat(“千峰“,1603年,“班级“);
选择concat_ws(“|“,“千峰”,“1603年“,“班级“);
9日排名函数:
rownumber():名次不并列秩():名次并列,但空位denserank():名次并列,但不空位
# #数据
id类分数
90
1 87 1 85
3
4 1 60
5 2 82
70
67
8 2 88 9
93

  

1 87 90 1
3
2 93 85 3
9 2 1
8 82 88 2
5 2 3

  

创建表如果不存在uscore (
uid int,
classid int,
得分双
)
行格式分隔字段终止' \ t '
,
数据加载本地inpath“/home/uscore”表uscore;
选择
u.uid,
u.classid,
u。分数
从uscore u
group by u.classid u.uid u。分数
限制3
,
选择
u.uid,
u.classid,
,
u.score row_number ()/(u分发。classid排序。分数desc)从uscore rn
u
,
取前三名
选择
t.uid,
,
t.classid t.score

(
选择
u.uid,
u.classid,
u.score,
row_number ()/(u分发。classid排序。分数desc) rn
从uscore u
) t t
。rn & lt;4
,
查看三个排名区别选择
u.uid
,
u.classid,
,
u.score row_number ()/(u分发。classid排序。分数rn desc),

好程序员大数据学习路线蜂巢内部函数