1. 程式人生 > >Spark SQL 內建函式列表

Spark SQL 內建函式列表

文章目錄

•    1 !
•    2 %
•    3 &
•    4 *
•    5 +
•    6 -
•    7 /
•    8 <
•    9 <=
•    10 <=>
•    11 =
•    12 ==
•    13 >
•    14 >=
•    15 ^
•    16 abs
•    17 acos
•    18 add_months
•    19 and
•    20 approx_count_distinct
•    21 approx_percentile
•    22 array
•    23 array_contains
•    24 ascii
•    25 asin
•    26 assert_true
•    27 atan
•    28 atan2
•    29 avg
•    30 base64
•    31 bigint
•    32 bin
•    33 binary
•    34 bit_length
•    35 boolean
•    36 bround
•    37 cast
•    38 cbrt
•    39 ceil
•    40 ceiling
•    41 char
•    42 char_length
•    43 character_length
•    44 chr
•    45 coalesce
•    46 collect_list
•    47 collect_set
•    48 concat
•    49 concat_ws
•    50 conv
•    51 corr
•    52 cos
•    53 cosh
•    54 cot
•    55 count
•    56 count_min_sketch
•    57 covar_pop
•    58 covar_samp
•    59 crc32
•    60 cube
•    61 cume_dist
•    62 current_database
•    63 current_date
•    64 current_timestamp
•    65 date
•    66 date_add
•    67 date_format
•    68 date_sub
•    69 date_trunc
•    70 datediff
•    71 day
•    72 dayofmonth
•    73 dayofweek
•    74 dayofyear
•    75 decimal
•    76 decode
•    77 degrees
•    78 dense_rank
•    79 double
•    80 e
•    81 elt
•    82 encode
•    83 exp
•    84 explode
•    85 explode_outer
•    86 expm1
•    87 factorial
•    88 find_in_set
•    89 first
•    90 first_value
•    91 float
•    92 floor
•    93 format_number
•    94 format_string
•    95 from_json
•    96 from_unixtime
•    97 from_utc_timestamp
•    98 get_json_object
•    99 greatest
•    100 grouping
•    101 grouping_id
•    102 hash
•    103 hex
•    104 hour
•    105 hypot
•    106 if
•    107 ifnull
•    108 in
•    109 initcap
•    110 inline
•    111 inline_outer
•    112 input_file_block_length
•    113 input_file_block_start
•    114 input_file_name
•    115 instr
•    116 int
•    117 isnan
•    118 isnotnull
•    119 isnull
•    120 java_method
•    121 json_tuple
•    122 kurtosis
•    123 lag
•    124 last
•    125 last_day
•    126 last_value
•    127 lcase
•    128 lead
•    129 least
•    130 left
•    131 length
•    132 levenshtein
•    133 like
•    134 ln
•    135 locate
•    136 log
•    137 log10
•    138 log1p
•    139 log2
•    140 lower
•    141 lpad
•    142 ltrim
•    143 map
•    144 map_keys
•    145 map_values
•    146 max
•    147 md5
•    148 mean
•    149 min
•    150 minute
•    151 mod
•    152 monotonically_increasing_id
•    153 month
•    154 months_between
•    155 named_struct
•    156 nanvl
•    157 negative
•    158 next_day
•    159 not
•    160 now
•    161 ntile
•    162 nullif
•    163 nvl
•    164 nvl2
•    165 octet_length
•    166 or
•    167 parse_url
•    168 percent_rank
•    169 percentile
•    170 percentile_approx
•    171 pi
•    172 pmod
•    173 posexplode
•    174 posexplode_outer
•    175 position
•    176 positive
•    177 pow
•    178 power
•    179 printf
•    180 quarter
•    181 radians
•    182 rand
•    183 randn
•    184 rank
•    185 reflect
•    186 regexp_extract
•    187 regexp_replace
•    188 repeat
•    189 replace
•    190 reverse
•    191 right
•    192 rint
•    193 rlike
•    194 rollup
•    195 round
•    196 row_number
•    197 rpad
•    198 rtrim
•    199 second
•    200 sentences
•    201 sha
•    202 sha1
•    203 sha2
•    204 shiftleft
•    205 shiftright
•    206 shiftrightunsigned
•    207 sign
•    208 signum
•    209 sin
•    210 sinh
•    211 size
•    212 skewness
•    213 smallint
•    214 sort_array
•    215 soundex
•    216 space
•    217 spark_partition_id
•    218 split
•    219 sqrt
•    220 stack
•    221 std
•    222 stddev
•    223 stddev_pop
•    224 stddev_samp
•    225 str_to_map
•    226 string
•    227 struct
•    228 substr
•    229 substring
•    230 substring_index
•    231 sum
•    232 tan
•    233 tanh
•    234 timestamp
•    235 tinyint
•    236 to_date
•    237 to_json
•    238 to_timestamp
•    239 to_unix_timestamp
•    240 to_utc_timestamp
•    241 translate
•    242 trim
•    243 trunc
•    244 ucase
•    245 unbase64
•    246 unhex
•    247 unix_timestamp
•    248 upper
•    249 uuid
•    250 var_pop
•    251 var_samp
•    252 variance
•    253 weekofyear
•    254 when
•    255 window
•    256 xpath
•    257 xpath_boolean
•    258 xpath_double
•    259 xpath_float
•    260 xpath_int
•    261 xpath_long
•    262 xpath_number
•    263 xpath_short
•    264 xpath_string
•    265 year
•    266 |
•    267 ~

 

!

! expr :邏輯非。

%

expr1 % expr2 - 返回 expr1/expr2 的餘數.

例子:

> SELECT 2 % 1.8;

 0.2

> SELECT MOD(2, 1.8);

 0.2

&

expr1 & expr2 - 返回 expr1 和 expr2 的按位AND的結果。

例子:

> SELECT 3 & 5;

 1

*

expr1 * expr2 - 返回 expr1*expr2.

例子:

> SELECT 2 * 3;

 6

+

expr1 + expr2 - 返回 expr1+expr2.

例子:

> SELECT 1 + 2;

 3

-

expr1 - expr2 - 返回 expr1-expr2.

例子:

> SELECT 2 - 1;

 1

/

expr1 / expr2 - 返回 expr1/expr2,返回結果總是浮點數。

例子:

> SELECT 3 / 2;

 1.5

> SELECT 2L / 2L;

 1.0

<

expr1 < expr2 - 如果 expr1 小於 expr2 則返回 true.

引數:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。

例子:

> SELECT 1 < 2;

 true

> SELECT 1.1 < '1';

 false

> SELECT to_date('2009-07-30 04:17:52') < to_date('2009-07-30 04:17:52');

 false

> SELECT to_date('2009-07-30 04:17:52') < to_date('2009-08-01 04:17:52');

 true

> SELECT 1 < NULL;

 NULL

<=

expr1 <= expr2 - 如果 expr1 小於等於 expr2。

例子:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。

例子:

> SELECT 2 <= 2;

 true

> SELECT 1.0 <= '1';

 true

> SELECT to_date('2009-07-30 04:17:52') <= to_date('2009-07-30 04:17:52');

 true

> SELECT to_date('2009-07-30 04:17:52') <= to_date('2009-08-01 04:17:52');

 true

> SELECT 1 <= NULL;

 NULL

<=>

expr1 <=> expr2 - 返回的結果和 EQUAL(=) 一樣。如果操作符兩邊都是 null,該操作符返回 true;僅一邊為null則返回false。

引數:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。
例子:

> SELECT 2 <=> 2;

 true

> SELECT 1 <=> '1';

 true

> SELECT true <=> NULL;

 false

> SELECT NULL <=> NULL;

 true

=

expr1 = expr2 - 如果 expr1 等於 expr2 則返回true,否則返回false。

引數:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。
例子:

> SELECT 2 = 2;

 true

> SELECT 1 = '1';

 true

> SELECT true = NULL;

 NULL

> SELECT NULL = NULL;

 NULL

==

expr1 == expr2 - 如果 expr1 等於 expr2 則返回true,否則返回false。

引數:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。
例子:

> SELECT 2 == 2;

 true

> SELECT 1 == '1';

 true

> SELECT true == NULL;

 NULL

> SELECT NULL == NULL;

 NULL

>

expr1 > expr2 - 如果 expr1 大於 expr2 則返回 true。

引數:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。
例子:

> SELECT 2 > 1;

 true

> SELECT 2 > '1.1';

 true

> SELECT to_date('2009-07-30 04:17:52') > to_date('2009-07-30 04:17:52');

 false

> SELECT to_date('2009-07-30 04:17:52') > to_date('2009-08-01 04:17:52');

 false

> SELECT 1 > NULL;

 NULL

>=

expr1 >= expr2 - 如果 expr1 大於等於 expr2 則返回 true。

引數:
expr1, expr2 - 比較的兩個引數型別必須一致,或者可以轉換成一樣的型別,而且這個型別支援排序。比如 map 型別就是不支援比較的,所以這個操作符不支援 map 型別的引數。
例子:

> SELECT 2 >= 1;

 true

> SELECT 2.0 >= '2.1';

 false

> SELECT to_date('2009-07-30 04:17:52') >= to_date('2009-07-30 04:17:52');

 true

> SELECT to_date('2009-07-30 04:17:52') >= to_date('2009-08-01 04:17:52');

 false

> SELECT 1 >= NULL;

 NULL

^

expr1 ^ expr2 - 返回 expr1 和 expr2 的按位異或的結果。

例子:

> SELECT 3 ^ 5;

 2

abs

abs(expr) - 返回數值的絕對值。
例子:

> SELECT abs(-1);

 1

acos

acos(expr) - 如果 -1 <= expr <= 1,則返回 expr 的反餘弦,否則返回 NaN。
例子:

> SELECT acos(1);

 0.0

> SELECT acos(2);

 NaN

add_months

add_months(start_date, num_months)

例子:

> SELECT add_months('2016-08-31', 1);

 2016-09-30

Since: 1.5.0

and

expr1 and expr2 - 邏輯 AND.

approx_count_distinct

approx_count_distinct(expr[, relativeSD]) - 通過 HyperLogLog ++ 返回估計的基數. relativeSD 定義允許的最大估計誤差。

approx_percentile

approx_percentile(col, percentage [, accuracy]) - 返回給定百分比處數值列 col 的近似百分位數值。百分比的值必須是 0.0 到 1.0 之間。

例子:

> SELECT approx_percentile(10.0, array(0.5, 0.4, 0.1), 100);

 [10.0,10.0,10.0]

> SELECT approx_percentile(10.0, 0.5, 100);

 10.0

array

array(expr, ...) - 返回給定值組成的陣列。

例子:

> SELECT array(1, 2, 3);

 [1,2,3]

array_contains

array_contains(array, value) - 如果陣列包含了 value,則返回 true。

例子:

> SELECT array_contains(array(1, 2, 3), 2);

 true

ascii

ascii(str) - 返回 str 的第一個字元的 ascii 數值。

例子:

> SELECT ascii('222');

 50

> SELECT ascii(2);

 50

asin

asin(expr) - 如果 -1 <= expr <= 1,則返回 expr 的反正弦,否則返回 NaN。

例子:

> SELECT asin(0);

 0.0

> SELECT asin(2);

 NaN

assert_true

assert_true(expr) - 如果 expr 表示式的返回值不是 true 則丟擲異常。

例子:

> SELECT assert_true(0 < 1);

 NULL

atan

atan(expr) - 返回 expr 的反正切。

例子:

> SELECT atan(0);

 0.0

atan2

atan2(expr1, expr2) - 返回平面的正 x 軸與由座標(expr1,expr2)點之間的弧度角度。

例子:

> SELECT atan2(0, 0);

 0.0

avg

avg(expr) - 返回 expr 表示式的平均值。

base64

base64(bin) - 將引數從二進位制檔案轉換為 base64 的字串。

例子:

> SELECT base64('Spark SQL');

 U3BhcmsgU1FM

bigint

bigint(expr) - 將值 expr 轉換為 bigint 資料型別。

bin

bin(expr) - 返回 long 型別的引數 expr 的二進位制字串表示形式。

例子:

> SELECT bin(13);

 1101

> SELECT bin(-13);

 1111111111111111111111111111111111111111111111111111111111110011

> SELECT bin(13.3);

 1101

binary

binary(expr) - 將值 expr 轉換為 binary 資料型別。

bit_length

bit_length(expr) - 返回字串資料的位長度或二進位制資料的位數。

例子:

> SELECT bit_length('Spark SQL');

 72

boolean

boolean(expr) - 將值 expr 轉換為 boolean 資料型別。

bround

bround(expr, d) - 使用 HALF_EVEN 舍入模式返回 expr 四捨五入至 d 位小數點的資料。

例子:

> SELECT bround(2.5, 0);

 2.0

cast

cast(expr AS type) - 將 expr 轉換成 type 型別的資料。

例子:

> SELECT cast('10' as int);

 10

cbrt

cbrt(expr) - 返回 expr 的立方根。

例子:

> SELECT cbrt(27.0);

 3.0

ceil

ceil(expr) - 返回不小於 expr 的最小整數。

例子:

> SELECT ceil(-0.1);

 0

> SELECT ceil(5);

 5

ceiling

ceiling(expr) - 返回不小於 expr 的最小整數。

例子:

> SELECT ceiling(-0.1);

 0

> SELECT ceiling(5);

 5

char

char(expr) - 返回二進位制等效於 expr 的 ASCII 字元。 如果 n 大於256,則結果等於 chr(n%256)

例子:

> SELECT char(65);

 A

char_length

char_length(expr) - 返回字串資料的字元長度或二進位制資料的位元組數。 字串資料的長度包括尾隨空格,二進位制資料的長度包括二進位制零。

例子:

> SELECT char_length('Spark SQL ');

 10

> SELECT CHAR_LENGTH('Spark SQL ');

 10

> SELECT CHARACTER_LENGTH('Spark SQL ');

 10

character_length

character_length(expr) - 返回字串資料的字元長度或二進位制資料的位元組數。 字串資料的長度包括尾隨空格,二進位制資料的長度包括二進位制零。

例子:

> SELECT character_length('Spark SQL ');

 10

> SELECT CHAR_LENGTH('Spark SQL ');

 10

> SELECT CHARACTER_LENGTH('Spark SQL ');

 10

chr

chr(expr) - 返回二進位制等效於 expr 的 ASCII 字元。 如果 n 大於256,則結果等於 chr(n%256)

例子:

> SELECT chr(65);

 A

coalesce

coalesce(expr1, expr2, ...) - 返回第一個非空引數(如果存在)。 否則,返回 null。

例子:

> SELECT coalesce(NULL, 1, NULL);

 1

collect_list

collect_list(expr) - 收集並返回非唯一元素列表。

collect_set

collect_set(expr) - 收集並返回唯一元素列表。

concat

concat(str1, str2, ..., strN) - 返回由 str1, str2, ..., strN 組成的字串。

例子:

> SELECT concat('Spark', 'SQL');

 SparkSQL

concat_ws

concat_ws(sep, [str | array(str)]+) - 返回由 sep 分隔組成的字串連線。

例子:

> SELECT concat_ws(' ', 'Spark', 'SQL');

  Spark SQL

conv

conv(num, from_base, to_base) - 將 num 從 from_base 進位制轉換為 to_base 進位制。

例子:

> SELECT conv('100', 2, 10);

 4

> SELECT conv(-10, 16, -10);

 -16

corr

corr(expr1, expr2) - Returns Pearson coefficient of correlation between a set of number pairs.

cos

cos(expr) - 返回 expr 的餘弦。

例子:

> SELECT cos(0);

 1.0

cosh

cosh(expr) - 返回 expr 的雙曲餘弦。

例子:

> SELECT cosh(0);

 1.0

cot

cot(expr) - 返回 expr 的餘切值。

例子:

> SELECT cot(1);

 0.6420926159343306

count

count(*) - Returns the total number of retrieved rows, including rows containing null.

count(expr) - Returns the number of rows for which the supplied expression is non-null.

count(DISTINCT expr[, expr...]) - Returns the number of rows for which the supplied expression(s) are unique and non-null.

count_min_sketch

count_min_sketch(col, eps, confidence, seed) - Returns a count-min sketch of a column with the given esp,
confidence and seed. The result is an array of bytes, which can be deserialized to a
CountMinSketch before usage. Count-min sketch is a probabilistic data structure used for
cardinality estimation using sub-linear space.

covar_pop

covar_pop(expr1, expr2) - Returns the population covariance of a set of number pairs.

covar_samp

covar_samp(expr1, expr2) - Returns the sample covariance of a set of number pairs.

crc32

crc32(expr) - Returns a cyclic redundancy check value of the expr as a bigint.

Examples:

> SELECT crc32('Spark');

 1557323817

cube

cume_dist

cume_dist() - Computes the position of a value relative to all values in the partition.

current_database

current_database() - Returns the current database.

Examples:

> SELECT current_database();

 default

current_date

current_date() - Returns the current date at the start of query evaluation.

Since: 1.5.0

current_timestamp

current_timestamp() - Returns the current timestamp at the start of query evaluation.

Since: 1.5.0

date

date(expr) - Casts the value expr to the target data type date.

date_add

date_add(start_date, num_days) - Returns the date that is num_days after start_date.

Examples:

> SELECT date_add('2016-07-30', 1);

 2016-07-31

Since: 1.5.0

date_format

date_format(timestamp, fmt) - Converts timestamp to a value of string in the format specified by the date format fmt.

Examples:

> SELECT date_format('2016-04-08', 'y');

 2016

Since: 1.5.0

date_sub

date_sub(start_date, num_days) - Returns the date that is num_days before start_date.

Examples:

> SELECT date_sub('2016-07-30', 1);

 2016-07-29

Since: 1.5.0

date_trunc

date_trunc(fmt, ts) - Returns timestamp ts truncated to the unit specified by the format model fmt.
fmt should be one of ["YEAR", "YYYY", "YY", "MON", "MONTH", "MM", "DAY", "DD", "HOUR", "MINUTE", "SECOND", "WEEK", "QUARTER"]

Examples:

> SELECT date_trunc('YEAR', '2015-03-05T09:32:05.359');

 2015-01-01 00:00:00

> SELECT date_trunc('MM', '2015-03-05T09:32:05.359');

 2015-03-01 00:00:00

> SELECT date_trunc('DD', '2015-03-05T09:32:05.359');

 2015-03-05 00:00:00

> SELECT date_trunc('HOUR', '2015-03-05T09:32:05.359');

 2015-03-05 09:00:00

Since: 2.3.0

datediff

datediff(endDate, startDate) - Returns the number of days from startDate to endDate.

Examples:

> SELECT datediff('2009-07-31', '2009-07-30');

 1

 

> SELECT datediff('2009-07-30', '2009-07-31');

 -1

Since: 1.5.0

day

day(date) - Returns the day of month of the date/timestamp.

Examples:

> SELECT day('2009-07-30');

 30

Since: 1.5.0

dayofmonth

dayofmonth(date) - Returns the day of month of the date/timestamp.

Examples:

> SELECT dayofmonth('2009-07-30');

 30

Since: 1.5.0

dayofweek

dayofweek(date) - Returns the day of the week for date/timestamp (1 = Sunday, 2 = Monday, ..., 7 = Saturday).

Examples:

> SELECT dayofweek('2009-07-30');

 5

Since: 2.3.0

dayofyear

dayofyear(date) - Returns the day of year of the date/timestamp.

Examples:

> SELECT dayofyear('2016-04-09');

 100

Since: 1.5.0

decimal

decimal(expr) - Casts the value expr to the target data type decimal.

decode

decode(bin, charset) - Decodes the first argument using the second argument character set.

Examples:

> SELECT decode(encode('abc', 'utf-8'), 'utf-8');

 abc

degrees

degrees(expr) - Converts radians to degrees.

Arguments:

  • expr - angle in radians

Examples:

> SELECT degrees(3.141592653589793);

 180.0

dense_rank

dense_rank() - Computes the rank of a value in a group of values. The result is one plus the
previously assigned rank value. Unlike the function rank, dense_rank will not produce gaps
in the ranking sequence.

double

double(expr) - Casts the value expr to the target data type double.

e

e() - Returns Euler's number, e.

Examples:

> SELECT e();

 2.718281828459045

elt

elt(n, input1, input2, ...) - Returns the n-th input, e.g., returns input2 when n is 2.

Examples:

> SELECT elt(1, 'scala', 'java');

 scala

encode

encode(str, charset) - Encodes the first argument using the second argument character set.

Examples:

> SELECT encode('abc', 'utf-8');

 abc

exp

exp(expr) - Returns e to the power of expr.

Examples:

> SELECT exp(0);

 1.0

explode

explode(expr) - Separates the elements of array expr into multiple rows, or the elements of map expr into multiple rows and columns.

Examples:

> SELECT explode(array(10, 20));

 10

 20

explode_outer

explode_outer(expr) - Separates the elements of array expr into multiple rows, or the elements of map exprinto multiple rows and columns.

Examples:

> SELECT explode_outer(array(10, 20));

 10

 20

expm1

expm1(expr) - Returns exp(expr) - 1.

Examples:

> SELECT expm1(0);

 0.0

factorial

factorial(expr) - Returns the factorial of exprexpr is [0..20]. Otherwise, null.

Examples:

> SELECT factorial(5);

 120

find_in_set

find_in_set(str, str_array) - Returns the index (1-based) of the given string (str) in the comma-delimited list (str_array).
Returns 0, if the string was not found or if the given string (str) contains a comma.

Examples:

> SELECT find_in_set('ab','abc,b,ab,c,def');

 3

first

first(expr[, isIgnoreNull]) - Returns the first value of expr for a group of rows.
If isIgnoreNull is true, returns only non-null values.

first_value

first_value(expr[, isIgnoreNull]) - Returns the first value of expr for a group of rows.
If isIgnoreNull is true, returns only non-null values.

float

float(expr) - Casts the value expr to the target data type float.

floor

floor(expr) - Returns the largest integer not greater than expr.

Examples:

> SELECT floor(-0.1);

 -1

> SELECT floor(5);

 5

format_number

format_number(expr1, expr2) - Formats the number expr1 like '#,###,###.##', rounded to expr2
decimal places. If expr2 is 0, the result has no decimal point or fractional part.
This is supposed to function like MySQL's FORMAT.

Examples:

> SELECT format_number(12332.123456, 4);

 12,332.1235

format_string

format_string(strfmt, obj, ...) - Returns a formatted string from printf-style format strings.

Examples:

> SELECT format_string("Hello World %d %s", 100, "days");

 Hello World 100 days

from_json

from_json(jsonStr, schema[, options]) - Returns a struct value with the given jsonStr and schema.

Examples:

> SELECT from_json('{"a":1, "b":0.8}', 'a INT, b DOUBLE');

 {"a":1, "b":0.8}

> SELECT from_json('{"time":"26/08/2015"}', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));

 {"time":"2015-08-26 00:00:00.0"}

Since: 2.2.0

from_unixtime

from_unixtime(unix_time, format) - Returns unix_time in the specified format.

Examples:

> SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');

 1970-01-01 00:00:00

Since: 1.5.0

from_utc_timestamp

from_utc_timestamp(timestamp, timezone) - Given a timestamp like '2017-07-14 02:40:00.0', interprets it as a time in UTC, and renders that time as a timestamp in the given time zone. For example, 'GMT+1' would yield '2017-07-14 03:40:00.0'.

Examples:

> SELECT from_utc_timestamp('2016-08-31', 'Asia/Seoul');

 2016-08-31 09:00:00

Since: 1.5.0

get_json_object

get_json_object(json_txt, path) - Extracts a json object from path.

Examples:

> SELECT get_json_object('{"a":"b"}', '$.a');

 b

greatest

greatest(expr, ...) - Returns the greatest value of all parameters, skipping null values.

Examples:

> SELECT greatest(10, 9, 2, 4, 3);

 10

grouping

grouping_id

hash

hash(expr1, expr2, ...) - Returns a hash value of the arguments.

Examples:

> SELECT hash('Spark', array(123), 2);

 -1321691492

hex

hex(expr) - Converts expr to hexadecimal.

Examples:

> SELECT hex(17);

 11

> SELECT hex('Spark SQL');

 537061726B2053514C

hour

hour(timestamp) - Returns the hour component of the string/timestamp.

Examples:

> SELECT hour('2009-07-30 12:58:59');

 12

Since: 1.5.0

hypot

hypot(expr1, expr2) - Returns sqrt(expr12 + expr22).

Examples:

> SELECT hypot(3, 4);

 5.0

if

if(expr1, expr2, expr3) - If expr1 evaluates to true, then returns expr2; otherwise returns expr3.

Examples:

> SELECT if(1 < 2, 'a', 'b');

 a

ifnull

ifnull(expr1, expr2) - Returns expr2 if expr1 is null, or expr1 otherwise.

Examples:

> SELECT ifnull(NULL, array('2'));

 ["2"]

in

expr1 in(expr2, expr3, ...) - Returns true if expr equals to any valN.

Arguments:

  • expr1, expr2, expr3, ... - the arguments must be same type.

Examples:

> SELECT 1 in(1, 2, 3);

 true

> SELECT 1 in(2, 3, 4);

 false

> SELECT named_struct('a', 1, 'b', 2) in(named_struct('a', 1, 'b', 1), named_struct('a', 1, 'b', 3));

 false

> SELECT named_struct('a', 1, 'b', 2) in(named_struct('a', 1, 'b', 2), named_struct('a', 1, 'b', 3));

 true

initcap

initcap(str) - Returns str with the first letter of each word in uppercase.
All other letters are in lowercase. Words are delimited by white space.

Examples:

> SELECT initcap('sPark sql');

 Spark Sql

inline

inline(expr) - Explodes an array of structs into a table.

Examples:

> SELECT inline(array(struct(1, 'a'), struct(2, 'b')));

 1  a

 2  b

inline_outer

inline_outer(expr) - Explodes an array of structs into a table.

Examples:

> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b')));

 1  a

 2  b

input_file_block_length

input_file_block_length() - Returns the length of the block being read, or -1 if not available.

input_file_block_start

input_file_block_start() - Returns the start offset of the block being read, or -1 if not available.

input_file_name

input_file_name() - Returns the name of the file being read, or empty string if not available.

instr

instr(str, substr) - Returns the (1-based) index of the first occurrence of substr in str.

Examples:

> SELECT instr('SparkSQL', 'SQL');

 6

int

int(expr) - Casts the value expr to the target data type int.

isnan

isnan(expr) - Returns true if expr is NaN, or false otherwise.

Examples:

> SELECT isnan(cast('NaN' as double));

 true

isnotnull

isnotnull(expr) - Returns true if expr is not null, or false otherwise.

Examples:

> SELECT isnotnull(1);

 true

isnull

isnull(expr) - Returns true if expr is null, or false otherwise.

Examples:

> SELECT isnull(1);

 false

java_method

java_method(class, method[, arg1[, arg2 ..]]) - Calls a method with reflection.

Examples:

> SELECT java_method('java.util.UUID', 'randomUUID');

 c33fb387-8500-4bfa-81d2-6e0e3e930df2

> SELECT java_method('java.util.UUID', 'fromString', 'a5cf6c42-0c85-418f-af6c-3e4e5b1328f2');

 a5cf6c42-0c85-418f-af6c-3e4e5b1328f2

json_tuple

json_tuple(jsonStr, p1, p2, ..., pn) - Returns a tuple like the function get_json_object, but it takes multiple names. All the input parameters and output column types are string.

Examples:

> SELECT json_tuple('{"a":1, "b":2}', 'a', 'b');

 1  2

kurtosis

kurtosis(expr) - Returns the kurtosis value calculated from values of a group.

lag

lag(input[, offset[, default]]) - Returns the value of input at the offsetth row
before the current row in the window. The default value of offset is 1 and the default
value of default is null. If the value of input at the offsetth row is null,
null is returned. If there is no such offset row (e.g., when the offset is 1, the first
row of the window does not have any previous row), default is returned.

last

last(expr[, isIgnoreNull]) - Returns the last value of expr for a group of rows.
If isIgnoreNull is true, returns only non-null values.

last_day

last_day(date) - Returns the last day of the month which the date belongs to.

Examples:

> SELECT last_day('2009-01-12'<