Welcome to aparke’s blog!
cast强转函数
数据文件1,1995-05-05,1200.3
2,1994-04-05,2200
3,1996-06-01,80000.5
创建一个表create table t_fun(id int,birthday string,salary string)
row format delimited
fields terminated by ',';
导入数据load data local inpath '/root/hive1/math/date.txt' into table t_fun;
创建一个新的表修改birthday、salary的数据类型create table t_fun_new
as
select cast(id as int) as id,cast(birthday as date) as birthday ,cast(salary as float) as salary
from t_fun;
前后对比0: jdbc:hive2://master:10000> desc t_fun;
+-----------+------------+----------+--+
| col_name | data_type | comment |
+-----------+------------+----------+--+
| id | int | |
| birthday | string | |
| salary | string | |
+-----------+------------+----------+--+
3 rows selected (0.107 seconds)
0: jdbc:hive2://master:10000> desc t_fun_new;
+-----------+------------+----------+--+
| col_name | data_type | comment |
+-----------+------------+----------+--+
| id | int | |
| birthday | date | |
| salary | float | |
+-----------+------------+----------+--+
select * from t_fun_new; |
数学函数
1.取整函数: round 四舍五入select round(5.4);-->5
select round(5.1235,3);
-->5.124 逗号后面为要保留多少位小数
2.向下取整函数: floor#地板select floor(5.1235);
-->5
3.向上取整函数: ceil (ceiling)#ceiling天花板的意思select ceil(5.1235);
-->6
4.取最大值(至少两个参数)select greatest(3,4,6,8);
-->8
5.取最小值(至少两个参数)select least(3,4,6,8);
-->3
7.取整函数 : round语法: round(double a)
返回值: BIGINT
说明: 返回double类型的整数值部分 (遵循四舍五入)
举例:
hive> select round(3.1415926)l;
3
hive> select round(3.5)l;
4
8.指定精度取整函数 : round语法: round(double a, int d)
返回值: DOUBLE
说明: 返回指定精度d的double类型
举例:
hive> select round(3.1415926,4)l;
3.1416
9.向下取整函数 : floor语法: floor(double a)
返回值: BIGINT
说明: 返回等于或者小于该double变量的最大的整数
举例:
hive> select floor(3.1415926)l;
3
hive> select floor(25)l;
25
10.向上取整函数 : ceil语法: ceil(double a)
返回值: BIGINT
说明: 返回等于或者大于该double变量的最小的整数
举例:
hive> select ceil(3.1415926)l;
4
hive> select ceil(46)l;
46
11.向上取整函数 : ceiling语法: ceiling(double a)
返回值: BIGINT
说明: 与ceil功能相同
举例:
hive> select ceiling(3.1415926)l;
4
hive> select ceiling(46)l;
46
12.取随机数函数 : rand语法: rand(),rand(int seed)
返回值: double
说明: 返回一个0到1范围内的随机数。如果指定种子seed,则会等到一个稳定的随机数序列
举例:
hive> select rand()l;
0.5577432776034763
13.自然指数函数 : exp语法: exp(double a)
返回值: double
说明: 返回自然对数e的a次方
举例:
hive> select exp(2)l;
7.38905609893065
14.自然对数函数: ln语法: ln(double a)
返回值: double
说明: 返回a的自然对数
15.以 10 为底对数函数 : log10语法: log10(double a)
返回值: double
说明: 返回以10为底的a的对数
举例:
hive> select log10(100)l;
2.0
16.以 2 为底对数函数 : log2语法: log2(double a)
返回值: double
说明: 返回以2为底的a的对数
举例:
hive> select log2(8)l;
3.0
17.对数函数 : log语法: log(double base, double a)
返回值: double
说明: 返回以base为底的a的对数
举例:
hive> select log(4,256)l;
4.0
18.幂运算函数 : pow语法: pow(double a, double p)
返回值: double
说明: 返回a的p次幂
举例:
hive> select pow(2,4)l;
16.0
19.幂运算函数 : power语法: power(double a, double p)
返回值: double
说明: 返回a的p次幂,与pow功能相同
举例:
hive> select power(2,4)l;
16.0
20.开平方函数 : sqrt语法: sqrt(double a)
返回值: double
说明: 返回a的平方根
举例:
hive> select sqrt(16)l;
4.0
21.二进制函数 : bin语法: bin(BIGINT a)
返回值: string
说明: 返回a的二进制代码表示
举例:
hive> select bin(7)l;
111
22.十六进制函数 : hex语法: hex(BIGINT a)
返回值: string
说明: 如果变量是int类型,那么返回a的十六进制表示;如果变量是string类型,则返回该字符串的十六进制表示
举例:
hive> select hex(17)l;
11
hive> select hex('abc')l;
616263
23.反转十六进制函数 : unhex语法: unhex(string a)
返回值: string
说明: 返回该十六进制字符串所代码的字符串
举例:
hive> select unhex('616263')l;
abc
hive> select unhex('123')l;
#
hive> select unhex(616263)l;
abc
24.进制转换函数 : conv语法: conv(BIGINT num, int from_base, int to_base)
返回值: string
说明: 将数值num从from_base进制转化到to_base进制
举例:
hive> select conv(17,16,10)l;--将17从16进制转为10进制
23
hive> select conv(17,10,2)l;
10001
25.绝对值函数 : abs语法: abs(double a) abs(int a)
返回值: double int
说明: 返回数值a的绝对值
举例:
hive> select abs(-3.9)l;
3.9
hive> select abs(10.9)l;
10.9
26.正取余函数 : pmod语法: pmod(int a, int b),pmod(double a, double b)
返回值: int double
说明: 返回正的a除以b的余数
举例:
hive> select pmod(9,4)l;
1
hive> select pmod(-9,4)l;
3
27.正弦函数 : sin语法: sin(double a)
返回值: double
说明: 返回a的正弦值
举例:
hive> select sin(0.8)l;
0.7173560908995228
28.反正弦函数 : asin语法: asin(double a)
返回值: double
说明: 返回a的反正弦值
举例:
hive> select asin(0.7173560908995228)l;
0.8
29.余弦函数 : cos返回值: double
说明: 返回a的余弦值
举例:
hive> select cos(0.9)l;
0.6216099682706644
30.反余弦函数 : acos语法: acos(double a)
返回值: double
说明: 返回a的反余弦值
举例:
hive> select acos(0.6216099682706644)l;
0.9
31.positive语法: positive(int a), positive(double a)
返回值: int double
说明: 返回a
举例:
hive> select positive(-10)l;
-10
hive> select positive(12)l;
12
32.negative取反 函数语法: negative(int a), negative(double a)
返回值: int double
说明: 返回-a
举例:
hive> select negative(-5);
5
hive> select negative(8);
-8