hive函數之~數值計算


1、取整函數: round  ***

語法: round(double a)
返回值: BIGINT
說明: 返回double類型的整數值部分 (遵循四舍五入)

hive> select round(3.1415926) from tableName;

3

hive> select round(3.5) from tableName;

4

hive> create table tableName as select round(9542.158) from tableName;

hive> describe tableName;

_c0     bigint

2、指定精度取整函數: round  ***

語法: round(double a, int d)
返回值: DOUBLE
說明: 返回指定精度d的double類型

hive> select round(3.1415926,4) from tableName;

3.1416

3、向下取整函數: floor  ***

語法: floor(double a)
返回值: BIGINT
說明: 返回等於或者小於該double變量的最大的整數

hive> select floor(3.1415926) from tableName;

3

hive> select floor(25) from tableName;

25

4、向上取整函數: ceil ***

語法: ceil(double a)
返回值: BIGINT
說明: 返回等於或者大於該double變量的最小的整數

hive> select ceil(3.1415926) from tableName;

4

hive> select ceil(46) from tableName;

46

5、向上取整函數: ceiling ***

語法: ceiling(double a)
返回值: BIGINT
說明: 與ceil功能相同

hive> select ceiling(3.1415926) from tableName;

4

hive> select ceiling(46) from tableName;

46

6、取隨機數函數: rand ***

語法: rand(),rand(int seed)
返回值: double
說明: 返回一個0到1范圍內的隨機數。如果指定種子seed,則會等到一個穩定的隨機數序列

hive> select rand() from tableName;

0.5577432776034763

hive> select rand() from tableName;

0.6638336467363424

hive> select rand(100) from tableName;

0.7220096548596434

hive> select rand(100) from tableName;

0.7220096548596434

7、自然指數函數: exp

語法: exp(double a)
返回值: double
說明: 返回自然對數e的a次方

hive> select exp(2) from tableName;

7.38905609893065

<strong>自然對數函數</strong>: ln

<strong>語法</strong>: ln(double a)

<strong>返回值</strong>: double

<strong>說明</strong>: 返回a的自然對數

1

hive> select ln(7.38905609893065) from tableName;

2.0

8、以10為底對數函數: log10

語法: log10(double a)
返回值: double
說明: 返回以10為底的a的對數

hive> select log10(100) from tableName;

2.0

9、以2為底對數函數: log2

語法: log2(double a)
返回值: double
說明: 返回以2為底的a的對數

hive> select log2(8) from tableName;

3.0

10、對數函數: log

語法: log(double base, double a)
返回值: double
說明: 返回以base為底的a的對數

hive> select log(4,256) from tableName;

4.0

11、冪運算函數: pow

語法: pow(double a, double p)
返回值: double
說明: 返回a的p次冪

hive> select pow(2,4) from tableName;

16.0

12、冪運算函數: power

語法: power(double a, double p)
返回值: double
說明: 返回a的p次冪,與pow功能相同

hive> select power(2,4) from tableName;

16.0

13、開平方函數: sqrt

語法: sqrt(double a)
返回值: double
說明: 返回a的平方根

hive> select sqrt(16) from tableName;

4.0

14、二進制函數: bin

語法: bin(BIGINT a)
返回值: string
說明: 返回a的二進制代碼表示

hive> select bin(7) from tableName;

111

15、十六進制函數: hex

語法: hex(BIGINT a)
返回值: string
說明: 如果變量是int類型,那么返回a的十六進制表示;如果變量是string類型,則返回該字符串的十六進制表示

hive> select hex(17) from tableName;

11

hive> select hex(‘abc’) from tableName;

616263

16、反轉十六進制函數: unhex

語法: unhex(string a)
返回值: string
說明: 返回該十六進制字符串所代碼的字符串

hive> select unhex(‘616263’) from tableName;

abc

hive> select unhex(‘11’) from tableName;

-

hive> select unhex(616263) from tableName;

abc

17、進制轉換函數: conv

語法: conv(BIGINT num, int from_base, int to_base)
返回值: string
說明: 將數值num從from_base進制轉化到to_base進制

hive> select conv(17,10,16) from tableName;

11

hive> select conv(17,10,2) from tableName;

10001

18、絕對值函數: abs

語法: abs(double a) abs(int a)
返回值: double int
說明: 返回數值a的絕對值

hive> select abs(-3.9) from tableName;

3.9

hive> select abs(10.9) from tableName;

10.9

19、正取余函數: pmod

語法: pmod(int a, int b),pmod(double a, double b)
返回值: int double
說明: 返回正的a除以b的余數

hive> select pmod(9,4) from tableName;

1

hive> select pmod(-9,4) from tableName;

3

20、正弦函數: sin

語法: sin(double a)
返回值: double
說明: 返回a的正弦值

hive> select sin(0.8) from tableName;

0.7173560908995228

21、反正弦函數: asin

語法: asin(double a)
返回值: double
說明: 返回a的反正弦值

hive> select asin(0.7173560908995228) from tableName;

0.8

22、余弦函數: cos

語法: cos(double a)
返回值: double
說明: 返回a的余弦值

hive> select cos(0.9) from tableName;

0.6216099682706644

23、反余弦函數: acos

語法: acos(double a)
返回值: double
說明: 返回a的反余弦值

hive> select acos(0.6216099682706644) from tableName;

0.9

24、positive函數: positive

語法: positive(int a), positive(double a)
返回值: int double
說明: 返回a

hive> select positive(-10) from tableName;

-10

hive> select positive(12) from tableName;

12

25、negative函數: negative

語法: negative(int a), negative(double a)
返回值: int double
說明: 返回-a

hive> select negative(-5) from tableName;

5

hive> select negative(8) from tableName;

-8


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM