Spark SQL函数

Adobe Experience Platform查询服务提供了多个内置的Spark SQL函数来扩展SQL功能。 本文档列出了查询服务支持的Spark SQL函数。

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

注意

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

类别

数学和统计运算符及函数

运算符/函数 描述
% 返回两个数字的余数
* 将两个数字乘以
+ 将两个数字相加
- 减去两个数字
/ 将两个数字相除
abs 返回输入的绝对值
acos 返回反余弦值
approx_count_distinct 返回HyperLogLog++的估计基数
approx_percentile 返回给定百分比的近似百分位数值
asin 返回反正弦值
atan 返回反正切值
atan2 返回正x轴平面与由坐标给出的点之间的角度
avg 返回平均值
cbrt 返回多维数据集根
ceilceiling 返回不大于输入值的最小整数
conv 从一个基转换到另一个基
corr 返回数字之间的皮尔逊系数
cos 返回余弦值
cosh 返回双曲余弦值
cot 返回相切值
dense_rank 返回值组中值的排名
e 返回Euler数
exp 返回e值的幂
expm1 返回值减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 返回正值
pow, power 将第一个值返回为第二个值的幂
radians 将值转换为弧度
rand 返回介于0和1之间的随机数
randn 返回随机值
rint 返回最接近的双值
round 返回最接近的四舍五入值
sign, signum 返回数字的符号
sin 返回值的正弦
sinh 返回值的双曲正弦
sqrt 返回值的平方根
stddev 返回值的标准偏差
sttdev_pop 返回值的群体标准偏差
stddev_samp 返回值的示例标准偏差
sum 返回值的和
tan 返回值的正切
tanh 返回值的双曲正切
var_pop 返回计算的群体差异
var_samp, variance 返回计算的示例方差

逻辑运算符和函数

运算符/函数 描述
!not 逻辑不
< 小于
<= 小于或等于
= 等于
> 大于
>= 大于或等于
^ Bitwise独占或
>= 大于或等于
[` `](https://spark.apache.org/docs/latest/api/sql/index.html#_15)
~ Bitwise不会
arrays_overlap 返回常用元素
assert_true 声明表达式为true时
if 如果表达式的计算结果为true,则返回第二个表达式。 否则,返回第三个表达式。
ifnull 如果表达式为null,则返回第二个表达式。 否则,返回第一个表达式。
in 如果第一个表达式位于任何后续表达式中,则返回true。
isnan 如果值不是数字,则返回true
isnotnull 如果值不为null,则返回true
isnull 如果值为null,则返回true
nanvl 如果不是数字,则返回第一个表达式,否则返回第二个表达式
or 逻辑或
when 何时可用于创建分支条件以进行比较
xpath_boolean 如果XPath表达式的计算结果为true或找到匹配的节点,则返回true

日期/时间函数

函数 描述
add_months 迄今添加月份
date_add 添加至今的天数
date_format 修改日期格式
date_sub 从日期减去天数
date_trunc 返回截断到指定单位的日期
datediff 返回日期之间的差值(以天为单位)
day, dayofmonth 返回一个月中的某天
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 返回字符串的年份

数组

函数 描述
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 将数组连接在一起,不存在任何重复项
array_zip Zip
cardinality 返回数组的大小
element_at 在位置返回元素
explode 将数组的元素分离为多行,不包括null
explode_outer 将数组的元素分离为多行,包括null
find_in_set 返回基于1的数组位置
flatten 拼合数组
inline 将结构数组分离到表中,不包括null
inline_outer 将结构数组分离到表中,包括null
posexplod 将数组的元素分离为多个具有位置的行,不包括null
posexplod 将数组的元素分离为多个具有位置(包括null)的行
reverse 反向数组的元素
shuffle 返回数组的随机排列
slice 对数组进行子集
sort_array 对数组进行排序(给定顺序)
zip_with 在应用函数之前,将两个数组合并到单个数组中

数据类型转换函数

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

转换和格式化功能

函数 描述
ascii 返回数值(ASCII)值
base64 将参数更改为base64字符串
bin 将参数更改为二进制值
bit_length 返回位长度
char, chr 返回ASCII字符
char_length, character_length 返回字符串长度
crc32 返回循环冗余校验值
degrees 将弧度转换为度
format_number 更改数字的格式
from_json, get_json_object 从JSON获取数据
hash 返回哈希值
hex 将参数转换为十六进制值
initcap 将字符串更改为小写标题
lcase, lower 将字符串更改为全小写
lpad 将字符串的左侧粘贴
map 创建映射
map_from_arrays 从数组创建映射
map_from_entries 从结构数组创建映射
md5 返回md5值
rpad 将字符串的右侧粘贴
rtrim 删除尾随空格
sha, sha1 返回SHA1值
sha2 返回SHA2值
soundex 返回soundex代码
stack 将值分隔为行
substr, substring 返回子字符串
to_json 返回JSON字符串
translate 替换字符串中的值
trim 删除前导和尾随字符
ucase, upper 将字符串更改为全部大写
unbase64 将base64字符串转换为二进制
unhex 将十六进制转换为二进制
uuid 返回UUID

数据评估

函数 描述
coalesce 返回第一个非空参数
collect_list 返回非唯一元素列表
collect_set 返回一组唯一元素
concat 拼接
concat_ws 带分隔符的串联
count 返回行的总计数
decode 使用字符集进行解码
elt 返回n输入
encode 使用字符集进行编码
first, first_value 返回第一个值
grouping 指示列是否已分组
grouping_id 返回分组级别
instr 返回基于1的字符出现索引
json_tuple 从JSON输入返回元组
lag, lead 返回偏移之前的值
last, last_value 返回最后一个值
left 返回前一个n字符
length 返回字符串的长度
levenshtein 返回字符串之间的列文施泰因距离
locate, position 返回子字符串首次出现的位置
map_concat 连接映射
map_keys 返回地图的键
map_values 返回映射的值
ntile 将行划分为多个分区
nullif 如果为true,则返回null
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_double, xpath_number 解析XML节点以进行双精度分析
xpath_float 解析浮点的XML节点
xpath_int 解析整数的XML节点
xpath_long 解析XML节点很长
xpath_short 解析短整数的XML节点
xpath_string 解析字符串的XML节点

当前信息

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

高阶函数

函数 描述
transform 转换数组中的元素
exists 检查元素是否存在
filter 筛选输入数组
aggregate 将二进制运算符应用于所有元素

在此页面上