Spark SQL函数

Adobe Experience Platform 查询 Service提供多个内置的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 逻辑不
< 小于
<= 小于或等于
= 等于
> 大于
>= 大于或等于
^ 按位排它或
>= 大于或等于
[` `](https://spark.apache.org/docs/latest/api/sql/index.html#_15)
~ 按位不
arrays_overlap 返回公用元素
assert_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 将字符串转换为日期
to_timestamp 将字符串转换为时间戳
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 将数据类型更改为小
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 返回字符串之间的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 将二进制运算符应用于所有元素

在此页面上