Spark SQL函数

您可以使用多个内置的Spark SQL函数,通过Adobe Experience Platform查询服务扩展SQL功能。 本文档列出了查询服务支持的Spark SQL函数。

有关函数的更多详细信息,包括其语法、用法和示例,请阅读Spark SQL函数文档

NOTE
并非外部文档中的所有函数都受支持。

数学和统计运算符及函数 math

运算符/函数
描述
%
返回两个数字的余数
*
将两个数字相乘
+
将两个数字相加
-
减去这两个数字
/
将两个数字相除
abs
返回输入的绝对值
acos
返回反余弦值
approx_count_distinct
返回HyperLogLog估计的基数++
approx_percentile
返回给定百分比的近似百分位值
asin
返回反正弦值
atan
返回反正切值
atan2
返回正x轴平面与坐标给定的点之间的角度
avg
返回平均值
cbrt
返回立方根
ceilceiling
返回不大于输入值的最小整数
conv
从一个基转换到另一个基
corr
返回数字之间的皮尔逊系数
cos
返回余弦值
cosh
返回双曲余弦值
cot
返回余切值
dense_rank
返回值在值组中的排名
e
返回欧拉数
exp
将e返回值的幂次方
expm1
返回e为值减去1的幂次
factorial
返回值的阶乘
floor
返回不小于值的最大整数
greatest
返回所有参数的最大值
hypot
返回给定两个值的斜率
kurtosis
返回组的峰度值
least
返回所有参数的最小值
ln
返回值的自然对数
log
返回值的对数
log10
返回值的对数(以10为单位)
log1p
返回值加1的对数
log2
返回值的对数(以2为单位)
max
返回表达式的最大值
mean
返回从值中计算出的平均值
min
返回表达式的最小值
monotonically_increasing_id
返回单调递增的ID
negative
返回否定值
percent_rank
返回值的百分比排名
percentile
返回给定百分比的精确百分位数
percentile_approx
返回给定百分比的近似百分位数
pi
返回pi
pmod
返回两个值之间的正模
positive
返回正值
powpower
将第一个值返回为第二个值的幂
radians
将值转换为弧度
rand
返回从0到1的随机数
randn
返回随机值
rint
返回最接近的双精度值
round
返回最接近的舍入值
signsignum
返回数字的符号
sin
返回值的正弦
sinh
返回值的双曲正弦
sqrt
返回值的平方根
stddev
返回值的标准偏差
sttdev_pop
返回值的总体标准偏差
stddev_samp
返回值的样本标准偏差
sum
返回值的总和
tan
返回值的正切
tanh
返回值的双曲正切
var_pop
返回计算得出的总体方差
var_sampvariance
返回计算的样本方差

逻辑运算符和函数 logical-operators

运算符/函数
描述
!not
逻辑非
<
小于
<=
小于或等于
=
等于
>
大于
>=
大于或等于
^
按位独占或
|
按位或
~
按位not
arrays_overlap
返回公共元素
assert_true
断言表达式是否为true
if
如果表达式的计算结果为true,则返回第二个表达式。 否则,返回第三个表达式。
ifnull
如果表达式为null,则返回第二个表达式。 否则,将返回第一个表达式。
in
如果第一个表达式位于任何后续表达式中,则返回true。
isnan
如果值不是数字,则返回true
isnotnull
如果值不为null,则返回true
isnull
如果值为空,则返回true
nanvl
返回第一个表达式(如果不是数字),否则返回第二个表达式
or
逻辑或
when
何时可用于创建分支条件进行比较
xpath_boolean
如果XPath表达式的计算结果为true或找到匹配的节点,则返回true

日期/时间函数 datetime-functions

函数
描述
add_months
在日期中添加月份
date_add
在日期中添加天数
date_format
修改日期格式
date_sub
从日期减去天数
date_trunc
返回截断为指定单位的日期
datediff
返回日期之间的天数差
daydayofmonth
返回月中日
dayofweek
返回星期几(1-7)
dayofyear
返回年中哪天
from_unixtime
以UNIX®时间返回日期
from_utc_timestamp
以UTC时间返回日期
hour
返回输入的小时数
last_day
返回日期所属月份的最后一天
minute
返回输入的分钟数
month
返回输入的月份
months_between
月数介于
next_day
返回比输入晚的第一天
quarter
返回输入的季度
second
返回字符串的秒数
to_date
将字符串转换为日期。 注意: ​字符串​ 必须 ​的格式为yyyy-mm-ddTHH24:MM:SS
to_timestamp
将字符串转换为时间戳。 注意: ​字符串​ 必须 ​的格式为yyyy-mm-ddTHH24:MM:SS
to_unix_timestamp
将字符串转换为UNIX®时间戳
to_utc_timestamp
将字符串转换为UTC时间戳
trunc
截断日期
unix_timestamp
返回UNIX®时间戳
weekday
星期几(0-6)
weekofyear
返回给定日期在一年中的哪一周
year
返回字符串的年份

数组 arrays

函数
描述
array
创建具有给定元素的数组
array_contains
检查数组是否包含值
array_distinct
从数组中删除重复的值
array_except
返回第一个数组中元素的数组,但不返回第二个数组中的元素数组
array_intersect
返回两个数组的交集
array_join
将两个数组连接在一起
array_max
返回数组的最大值
array_min
返回数组的最小值
array_position
返回元素从1开始的位置
array_remove
删除与该元素相等的所有元素
array_repeat
创建一个包含已计数次数的值的数组
array_sort
对数组排序
array_union
将数组连接在一起,没有任何重复项
arrays_zip
将给定数组的值与给定索引处的原始集合的值组合在一起
cardinality
返回数组的大小
element_at
返回位置的元素
explode
将数组的元素分隔为多行,不包括null
explode_outer
将数组的元素分隔为多个行,包括null
find_in_set
返回数组的从1开始的位置
flatten
拼合阵列阵列
inline
将结构数组分隔到表中,不包括null
inline_outer
将结构数组分隔到表中,包括空值
posexplode
将数组的元素分隔为多个具有位置的行,但不包括null
reverse
反转数组的元素
shuffle
返回数组的随机置换
slice
将数组设为子集
sort_array
按顺序对数组排序
zip_with
在应用函数之前,将两个数组合并到单个数组中

数据类型转换函数 datatype-casting

函数
描述
bigint
将数据类型更改为bigint
binary
将数据类型更改为二进制
boolean
将数据类型更改为布尔值
type
将数据类型更改为指定的类型
date
将数据类型更改为日期
decimal
将数据类型更改为小数
double
将数据类型更改为双精度类型
float
将数据类型更改为浮点数
int
将数据类型更改为int
smallint
将数据类型更改为smallint
str_to_map
从字符串创建映射
string
将数据类型更改为字符串
struct
创建结构
tinyint
将数据类型更改为tinyint

转换和格式化函数 conversion

函数
描述
ascii
返回数字(ASCII)值
base64
将参数更改为base64字符串
bin
将参数更改为二进制值
bit_length
返回位长度
charchr
返回ASCII字符
char_lengthcharacter_length
返回字符串长度
crc32
返回循环冗余检查值
degrees
将弧度转换为度
format_number
更改号码的格式
from_jsonget_json_object
从JSON获取数据
hash
返回哈希值
hex
将参数转换为十六进制值
initcap
将字符串更改为字首大写
lcaselower
将字符串更改为全部小写
lpad
垫住线条的左侧
map
创建映射
map_from_arrays
从数组创建映射
map_from_entries
从结构数组创建映射
md5
返回md5值
rpad
垫住线条的右侧
rtrim
删除尾随空格
shasha1
返回SHA1值
sha2
返回SHA2值
soundex
返回soundex代码
stack
将值分隔为行
substrsubstring
返回子字符串
to_json
返回JSON字符串
translate
替换字符串中的值
trim
删除前导和尾随字符
ucaseupper
将字符串更改为全部大写
unbase64
将base64字符串转换为二进制
unhex
将十六进制转换为二进制
uuid
返回UUID

数据评估 data-evaluation

函数
描述
coalesce
返回第一个非空参数
collect_list
返回非唯一元素的列表
collect_set
返回一组唯一元素
concat
串联
concat_ws
与分隔符连接
count
返回行的总计数
decode
使用字符集解码
elt
返回第n个输入
encode
使用字符集进行编码
firstfirst_value
返回第一个值
grouping
指示列是否已分组
grouping_id
返回分组级别
instr
返回从1开始的字符出现索引
json_tuple
从JSON输入返回元组
laglead
返回偏移之前的值
lastlast_value
返回最后一个值
left
返回前n个字符
length
返回字符串的长度
levenshtein
返回字符串之间的列文氏距离
locateposition
返回子字符串第一次出现的位置
map_concat
连接映射
map_keys
返回映射的键
map_values
返回映射的值
ntile
将行划分为分区
nullif
如果为true,则返回空值
nvl
如果为null,则返回值
nvl2
如果不是null,则返回值
parse_url
提取URL的一部分
rank
计算值的排名
regexp_extract
提取与正则表达式匹配的内容
regex_replace
替换匹配正则表达式的内容
repeat
返回重复的字符串
replace
替换字符串的所有实例
rollup
创建多维度汇总
row_number
分配唯一的行号
schema_of_json
返回JSON的架构
sentences
将字符串拆分为单词数组
sequence
生成元素数组
shiftleft
带符号的左位移位
shiftright
带符号的右位偏移
shiftrightunsigned
无符号位右移
size
返回数组的大小
space
返回包含n个空格的字符串
split
拆分字符串
substring_index
返回子字符串的索引
window
窗口
xpath
解析XML节点
xpath_doublexpath_number
解析XML节点以获取双精度类型
xpath_float
解析浮点的XML节点
xpath_int
解析XML节点的整数
xpath_long
长时间解析XML节点
xpath_short
分析短整数的XML节点
xpath_string
解析字符串的XML节点

当前信息 current-information

函数
描述
current_database
返回当前数据库
current_date
返回当前日期
current_timestampnow
返回当前时间戳

高阶函数 higher-order

函数
描述
transform
变换数组中的元素
exists
检查元素是否存在
filter
筛选输入数组
aggregate
将二进制运算符应用于所有元素
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb