1.hive自身支持的math函数
Mathematical 计算数学函数
- abs(DOUBLE a)
- acos(DECIMAL|DOUBLE a)
- asin(DECIMAL|DOUBLE a)
- atan(DECIMAL|DOUBLE a)
- bin(BIGINT a)
- bround(DOUBLE a [, INT decimals]) SELECT bround(12.25, 1);12.2
- cbft(DOUBLE a)
- ceil(DOUBLE a)
- ceiling(DOUBLE a) SELECT ceiling(-0.1) FROM src LIMIT 1;0
SELECT ceiling(5) FROM src LIMIT 1;5
- conv(BIGINT|STRING a, INT from_base, INT to_base) SELECT conv('100', 2, 10) FROM src LIMIT 1;'4'
SELECT conv(-10, 16, -10) FROM src LIMIT 1; '16'
- cos(DECIMAL|DOUBLE a)
- degrees(DECIMAL|DOUBLE a) SELECT degrees(30) FROM src LIMIT 1;-1 将a的值从弧度转换为度
- e()
- exp(DECIMAL|DOUBLE a) 返回e ^ a,其中e是自然对数的底数 SELECT exp(0) FROM src LIMIT 1; 1
- factorial(INT a) SELECT factorial(5); 120 返回a的阶乘。有效a为[0..20]
- floor(DOUBLE a)
- greatest(T a1, T a2, ...) 返回值列表的最大值。修复了当一个或多个参数为NULL并放宽严格类型限制(与“>”运算符一致)时返回NULL的问题
SELECT greatest(2, 3, 1) FROM src LIMIT 1; 3
- hex(BIGINT|BINARY|STRING a) SELECT hex('Facebook') FROM src LIMIT 1;'46616365626F6F6B'
如果参数是INT或二进制,则十六进制以十六进制格式将数字作为STRING返回。否则,如果数字为STRING,则它将每个字符转换为其十六进制表示形式,并返回结果STRING
- least(T a1, T a2, ...) SELECT least(2, 3, 1) FROM src LIMIT 1;1 返回值列表中的最小值。修复了当一个或多个参数为NULL并放宽严格类型限制(与“ <”运算符一致)时返回NULL的问题
- ln(DECIMAL|DOUBLE a) 返回参数a的自然对数
- log(DECIMAL|DOUBLE base, DECIMAL|DOUBLE a)
- log10(DECIMAL|DOUBLE a)
- log2(DECIMAL|DOUBLE a)
- negative(T<DOUBLE|INT> a)
- pi()
- pmod(T<DOUBLE|INT> a, T b)
- positive(T<DOUBLE|INT> a)
- pow(DOUBLE a, DOUBLE p) SELECT pow(2, 3) FROM src LIMIT 1; 8 2^3
- power(DOUBLE a, DOUBLE p)
- radians(DECIMAL|DOUBLE a)
- rand([INT seed])
- round(DOUBLE a [, INT d])
- shiftleft(T<BIGINT|INT|SMALLINT|TINYINT> a, INT b) 位移
- shiftright(T<BIGINT|INT|SMALLINT|TINYINT> a, INT b)
- shiftrightunsigned(T<BIGINT|INT|SMALLINT|TINYINT> a, INT b)
- sign(T<DOUBLE|INT> a)
- sin(DECIMAL|DOUBLE a)
- sqrt(DECIMAL|DOUBLE a) 返回a的平方根 SELECT sqrt(4) FROM src LIMIT 1;2
- tan(DECIMAL|DOUBLE a)
- unhex(STRING a)
- width_bucket(NUMBER expr, NUMBER min_value, NUMBER max_value, INT num_buckets)
hive的Aggregate
- avg(col)
- collect_set(col)
- collect_list(col)
- corr(col1, col2)
- count([DISTINCT] col)
- covar_pop(col1, col2)
- covar_samp(col1, col2)
- histogram_numeric(col, b)
- max(col)
- min(col)
- ntile(INT x)
- percentile(BIGINT col, p), array<DOUBLE> percentile(BIGINT col, array(p1 [, p2]...))
- percentile_approx(DOUBLE col, p, [, B]), array<DOUBLE> percentile_approx(DOUBLE col, array(p1 [, p2]...), [, B])
- regr_avgx(T independent, T dependent)
- regr_avgy(T independent, T dependent)
- regr_count(T independent, T dependent)
- regr_intercept(T independent, T dependent)
- regr_r2(T independent, T dependent)
- regr_slope(T independent, T dependent)
- regr_sxx(T independent, T dependent)
- regr_sxy(T independent, T dependent)
- regr_syy(T independent, T dependent)
- stddev 标准差
- stddev_pop(col) 标准偏差
- stddev_samp(col) 无偏样本标准差
- sum(col)
- variance(col) 返回组中数字列的方差
- var_pop(col) 组中数字列的方差
- var_samp(col) 返回组中数字列的无偏样本方差
2. hive使用java的算法
math
static double abs(double a)
返回值为 double绝对值
static float abs(float a)
返回 float值的绝对值
static int abs(int a)
返回值为 int绝对值
static long abs(long a)
返回值为 long绝对值
static double acos(double a)
返回值的反余弦值; 返回的角度在0.0到pi的范围内
static int addExact(int x, int y)
返回其参数的总和,如果结果溢出int,则抛出 int
static long addExact(long x, long y)
返回其参数的总和,如果结果溢出long,则抛出 long
static double asin(double a)
返回值的正弦值; 返回角度在pi / 2到pi / 2的范围内
static double atan(double a)
返回值的反正切值; 返回角度在pi / 2到pi / 2的范围内
static double atan2(double y, double x)
返回从直角坐标(转换角度 theta x , y )为极坐标 (R,θ-)
static double cbrt(double a)
返回 double值的多维数据集根
static double ceil(double a)
返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数
static double copySign(double magnitude, double sign)
使用第二个浮点参数的符号返回第一个浮点参数
static float copySign(float magnitude, float sign)
使用第二个浮点参数的符号返回第一个浮点参数
static double cos(double a)
返回角度的三角余弦
static double cosh(double x)
返回的双曲余弦 double值
static int decrementExact(int a)
返回一个递减1的参数,如果结果溢出int,则 int
static long decrementExact(long a)
将返回的参数递减1,如果结果溢出long,则 long
static double exp(double a)
返回欧拉的数字 e提高到一个 double价值
static double expm1(double x)
返回 e x -1
static double floor(double a)
返回小于或等于参数的最大(最接近正无穷大) double值,等于一个数学整数
static int floorDiv(int x, int y)
返回小于或等于代数商的最大(最接近正无穷大) int值
static long floorDiv(long x, long y)
返回小于或等于代数商的最大(最接近正无穷大) long值
static int floorMod(int x, int y)
返回 int参数的底部模数
static long floorMod(long x, long y)
返回 long参数的底模数
static int getExponent(double d)
返回a的表示中使用的无偏指数 double
static int getExponent(float f)
返回a的表示中使用的无偏指数 float
static double hypot(double x, double y)
返回sqrt( x 2 + y 2 ),没有中间溢出或下溢
static double IEEEremainder(double f1, double f2)
根据IEEE 754标准计算两个参数的余数运算
static int incrementExact(int a)
返回自变量1,如果结果溢出int,则 int
static long incrementExact(long a)
返回一个增加1的参数,如果结果溢出long,则 long
static double log(double a)
返回的自然对数(以 e为底) double值
static double log10(double a)
返回一个 double的基数10对数值
static double log1p(double x)
返回参数和1的和的自然对数
static double max(double a, double b)
返回两个 double值中的较大值
static float max(float a, float b)
返回两个 float的较大值
static int max(int a, int b)
返回两个 int值中的较大值
static long max(long a, long b)
返回两个 long的较大值
static double min(double a, double b)
返回两个 double的较小值
static float min(float a, float b)
返回两个 float的较小值
static int min(int a, int b)
返回两个 int的较小值
static long min(long a, long b)
返回两个 long的较小值
static int multiplyExact(int x, int y)
返回参数的乘积,如果结果溢出int,则抛出 int
static long multiplyExact(long x, long y)
返回参数的乘积,如果结果溢出long,则抛出 long
static int negateExact(int a)
返回参数的否定,如果结果溢出int,则 int
static long negateExact(long a)
返回参数的否定,如果结果溢出long,则 long
static double nextAfter(double start, double direction)
返回与第二个参数方向相邻的第一个参数的浮点数
static float nextAfter(float start, double direction)
返回与第二个参数方向相邻的第一个参数的浮点数
static double nextDown(double d)
返回与负无穷大方向相邻的 d的浮点值
static float nextDown(float f)
返回与负无穷大方向相邻的 f的浮点值
static double nextUp(double d)
返回与正无穷大方向相邻的 d的浮点值
static float nextUp(float f)
返回与正无穷大方向相邻的 f的浮点值
static double pow(double a, double b)
将第一个参数的值返回到第二个参数的幂
static double random()
返回值为 double值为正号,大于等于 0.0 ,小于 1.0
static double rint(double a)
返回与参数最接近值的 double值,并且等于数学整数
static long round(double a)
返回参数中最接近的 long ,其中 long四舍五入为正无穷大
static int round(float a)
返回参数中最接近的 int ,其中 int四舍五入为正无穷大
static double scalb(double d, int scaleFactor)
返回 d 2 scaleFactor四舍五入,好像由单个正确四舍五入的浮点乘以双重值集合的成员执行
static float scalb(float f, int scaleFactor)
返回 f 2 scaleFactor四舍五入,就像一个正确圆形的浮点数乘以浮点值集合的成员一样
static double signum(double d)
返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0,如果参数小于零,则为-1.0
static float signum(float f)
返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0f,如果参数小于零,则为-1.0f
static double sin(double a)
返回角度的三角正弦
static double sinh(double x)
返回的双曲正弦 double值
static double sqrt(double a)
返回的正确舍入正平方根 double值
static int subtractExact(int x, int y)
返回参数的差异,如果结果溢出int,则抛出 int
static long subtractExact(long x, long y)
返回参数的差异,如果结果溢出long,则抛出 long
static double tan(double a)
返回角度的三角正切
static double tanh(double x)
返回的双曲正切 double值
static double toDegrees(double angrad)
将以弧度测量的角度转换为以度为单位的近似等效角度
static int toIntExact(long value)
返回long参数的值; 如果值溢出int,则int
static double toRadians(double angdeg)
将以度为单位的角度转换为以弧度测量的大致相等的角度
static double ulp(double d)
返回参数的ulp的大小
static float ulp(float f)
返回参数的ulp的大小