Functions

可用于DataFrame操作的内置函数集合。 从Apache Spark 3.5.0开始,所有函数都支持Spark Connect。

Normal Functions

col (列)

根据给定的列名返回一个 Column

column (列)

根据给定的列名返回一个 Column

lit (col)

创建一个 Column 的字面值。

broadcast (数据框)

将 DataFrame 标记为足够小以用于广播连接。

coalesce (*列)

返回第一个不为null的列。

input_file_name ()

为当前Spark任务创建一个字符串列,用于文件名。

isnan (列)

如果列是NaN,则返回true的表达式。

isnull (col)

如果列为空,则返回true的表达式。

monotonically_increasing_id ()

一个生成单调递增64位整数的列。

named_struct (*列)

创建一个具有给定字段名称和值的结构体。

nanvl (col1, col2)

如果 col1 不是 NaN,则返回 col1;如果 col1 是 NaN,则返回 col2。

rand ([种子])

生成一个随机列,具有独立同分布(i.i.d.)的样本,均匀分布在 [0.0, 1.0) 内。

randn ([种子])

生成一个来自标准正态分布的独立同分布(i.i.d.)样本列。

spark_partition_id ()

分区ID的列。

when (条件, 值)

评估一系列条件,并返回多个可能结果表达式中的一个。

bitwise_not (col)

计算逐位非。

bitwiseNOT (col)

计算按位取反。

expr (str)

将表达式字符串解析为它所代表的列

greatest (*列)

返回列名称列表中的最大值,跳过空值。

least (*列)

返回列名列表中的最小值,跳过空值。

Math Functions

sqrt (col)

计算指定浮点值的平方根。

abs (列)

计算绝对值。

acos (col)

计算输入列的反余弦。

acosh (col)

计算输入列的反双曲余弦。

asin (col)

计算输入列的反正弦。

asinh (col)

计算输入列的反双曲正弦。

atan (col)

计算输入列的反正切。

atanh (col)

计算输入列的反双曲正切。

atan2 (col1, col2)

在版本 1.4.0 中新增。

bin (列)

返回给定列的二进制值的字符串表示。

cbrt (列)

计算给定值的立方根。

ceil (列)

计算给定值的上限。

ceiling (列)

计算给定值的向上取整。

conv (列, 从基数, 到基数)

将字符串列中的数字从一种进制转换为另一种进制。

cos (列)

计算输入列的余弦值。

cosh (col)

计算输入列的双曲余弦。

cot (col)

计算输入列的余切。

csc (列)

计算输入列的余弦的倒数。

e ()

返回欧拉数。

exp (col)

计算给定值的指数。

expm1 (col)

计算给定值减去一的指数。

factorial (列)

计算给定值的阶乘。

floor (列)

计算给定值的下限。

hex (col)

计算给定列的十六进制值,该列可以是 pyspark.sql.types.StringType , pyspark.sql.types.BinaryType , pyspark.sql.types.IntegerType pyspark.sql.types.LongType .

unhex (col)

十六进制的逆

hypot (col1, col2)

计算 sqrt(a^2 + b^2) 而不产生中间溢出或下溢。

ln (col)

返回参数的自然对数。

log (arg1[, arg2])

返回第二个参数的以第一个参数为底的对数。

log10 (col)

计算给定值的以10为底的对数。

log1p (col)

计算“给定值加一”的自然对数。

log2 (col)

返回参数的以2为底的对数。

negate (列)

返回负值。

negative (col)

返回负值。

pi ()

返回π。

pmod (被除数, 除数)

返回被除数对除数的正值。

positive (col)

返回值。

pow (col1, col2)

返回第一个参数的值的第二个参数次幂。

power (col1, col2)

返回第一个参数的值的第二个参数次幂。

rint (col)

返回与参数值最接近的双精度值,并且等于一个数学整数。

round (列[, 精度])

使用 HALF_UP 舍入模式将给定值四舍五入到 scale 位小数,如果 scale >= 0,或者在整数部分当 scale < 0 时。

bround (列[, 缩放])

使用HALF_EVEN舍入模式将给定值四舍五入到 scale 位小数,如果 scale >= 0,或在整数量时当 scale < 0。

sec (列)

计算输入列的割线。

shiftleft (列, 位数)

将给定值 numBits 向左移动。

shiftright (列, 位数)

(签名) 将给定值 numBits 向右移位。

shiftrightunsigned (列, 位数)

无符号右移给定值 numBits。

sign (列)

计算给定值的符号。

signum (列)

计算给定值的符号。

sin (列)

计算输入列的正弦。

sinh (col)

计算输入列的双曲正弦。

tan (col)

计算输入列的正切值。

tanh (col)

计算输入列的双曲正切。

toDegrees (col)

在版本 1.4.0 中新增。

try_add (左, 右)

返回 left`and `right 的总和,如果溢出则结果为 null。

try_avg (col)

返回从一组值计算的均值,溢出时结果为null。

try_divide (左边, 右边)

返回 dividend / divisor

try_multiply (左, 右)

返回 left`*`right ,如果溢出结果为null。

try_subtract (左, 右)

返回 left - right ,当溢出时结果为 null。

try_sum (列)

返回从一组值计算的总和,溢出时结果为null。

try_to_binary (col[, format])

这是一个特殊版本的 to_binary ,它执行相同的操作,但如果无法进行转换,则返回NULL值而不是抛出错误。

try_to_number (列, 格式)

根据字符串格式 format 将字符串 ‘col’ 转换为数字。

degrees (col)

将以弧度为单位测量的角度转换为约等于以度为单位测量的角度。

toRadians (列)

在版本 1.4.0 中新增。

radians (col)

将以度为单位测量的角度转换为大约相等的以弧度为单位测量的角度。

width_bucket (值, 最小, 最大, 桶数)

返回该表达式评估后值所落入的桶编号。

Datetime Functions

add_months (开始, 月份)

返回在 start 之后的 months 个月的日期。

convert_timezone (源时区, 目标时区, 源时间戳)

将无时区的时间戳 sourceTs sourceTz 时区转换为 targetTz

curdate ()

在查询评估开始时返回当前日期,作为一个 DateType 列。

current_date ()

在查询评估开始时返回当前日期,作为一个 DateType 列。

current_timestamp ()

在查询评估开始时返回当前时间戳,作为一个 TimestampType 列。

current_timezone ()

返回当前会话的本地时区。

date_add (开始, 天数)

返回在 start 之后 days 天的日期。

date_diff (结束, 开始)

返回从 start end 的天数。

date_format (日期, 格式)

将日期/时间戳/字符串转换为由第二个参数给定的日期格式指定的字符串格式的值。

date_from_unix_date (天数)

从1970-01-01以来的 天数 创建日期。

date_sub (起始日期, 天数)

返回在 start 之前 days 天的日期。

date_trunc (格式, 时间戳)

返回根据格式指定的单位截断的时间戳。

dateadd (开始, 天数)

返回在 start 之后 days 天的日期。

datediff (结束, 开始)

返回从 start end 的天数。

day (col)

提取给定日期/时间戳的月份中的天,以整数形式表示。

date_part (字段, 来源)

提取日期/时间戳或区间源的一部分。

datepart (字段, 源)

提取日期/时间戳或时间间隔源的一部分。

dayofmonth (col)

提取给定日期/时间戳的月份中的天,以整数形式表示。

dayofweek (列)

提取给定日期/时间戳的星期几作为整数。

dayofyear (列)

提取给定日期/时间戳的年份中的天数作为整数。

extract (字段, 源)

提取日期/时间戳或区间源的一部分。

second (col)

提取给定日期的秒数作为整数。

weekofyear (col)

提取给定日期的周数作为整数。

year (列)

将给定日期/时间戳提取为整数年份。

quarter (col)

将给定日期/时间戳的季度提取为整数。

month (col)

提取给定日期/时间戳的月份作为整数。

last_day (日期)

返回给定日期所属的月份的最后一天。

localtimestamp ()

在查询评估开始时返回当前的时间戳,作为无时区的时间戳列。

make_dt_interval ([天, 小时, 分钟, 秒])

从天、小时、分钟和秒制作 DayTimeIntervalType 持续时间。

make_interval ([年份, 月份, 周, 天, …])

根据年、月、周、天、小时、分钟和秒创建时间间隔。

make_timestamp (年份, 月份, 日期, 小时, …)

从年份、月份、天数、小时、分钟、秒和时区字段创建时间戳。

make_timestamp_ltz (年, 月, 日, …)

根据年、月、日、小时、分钟、秒和时区字段创建当前的本地时间戳。

make_timestamp_ntz (年, 月, 日, …)

根据年份、月份、天数、小时、分钟、秒字段创建本地日期时间。

make_ym_interval ([年, 月])

从年份和月份生成年-月间隔。

minute (col)

提取给定时间戳的分钟部分作为整数。

months_between (日期1, 日期2[, 四舍五入])

返回日期 date1 和 date2 之间的月份数。

next_day (日期, 星期几)

返回比日期列的值晚的第一个日期,基于第二个 星期几 参数。

hour (col)

提取给定时间戳的小时作为整数。

make_date (年, 月, 日)

返回一个由年份、月份和日期列构建的日期列。

now ()

返回查询评估开始时的当前时间戳。

from_unixtime (时间戳[, 格式])

将unix纪元(1970-01-01 00:00:00 UTC)以来的秒数转换为表示该时刻的字符串,该字符串在当前系统时区中以给定格式呈现。

unix_timestamp ([时间戳, 格式])

将给定模式(默认为‘yyyy-MM-dd HH:mm:ss’)的时间字符串转换为Unix时间戳(以秒为单位),使用默认时区和默认地区,如果转换失败则返回null。

to_unix_timestamp (时间戳[, 格式])

返回给定时间的UNIX时间戳。

to_timestamp (列[, 格式])

Column 转换为 pyspark.sql.types.TimestampType ,使用可选指定的格式。

to_timestamp_ltz (时间戳[, 格式])

使用 format 解析 timestamp 为无时区的时间戳。

to_timestamp_ntz (时间戳[, 格式])

解析 timestamp format 以获得不带时区的时间戳。

to_date (col[, 格式])

将一个 Column 转换为 pyspark.sql.types.DateType ,使用可选指定的格式。

trunc (日期, 格式)

返回按指定格式截断到的日期。

from_utc_timestamp (时间戳, 时区)

这是一个支持无时区时间戳的数据库的常见功能。

to_utc_timestamp (时间戳, 时区)

这是一个支持无时区时间戳的数据库的常用功能。

weekday (col)

返回日期/时间戳的星期几(0 = 星期一,1 = 星期二,…,6 = 星期天)。

window (时间列, 窗口持续时间[, …])

将行桶化为一个或多个时间窗口,给定指定列的时间戳。

session_window (时间列, 间隔持续时间)

根据指定的列时间戳生成会话窗口。

timestamp_micros (col)

根据自UTC纪元以来的微秒数创建时间戳。

timestamp_millis (col)

从UTC纪元以来的毫秒数创建时间戳。

timestamp_seconds (列)

将从Unix纪元(1970-01-01T00:00:00Z)开始的秒数转换为时间戳。

try_to_timestamp (col[, format])

col format 解析为时间戳。

unix_date (col)

返回自1970-01-01以来的天数。

unix_micros (col)

返回自1970-01-01 00:00:00 UTC以来的微秒数。

unix_millis (col)

返回自1970年01月01日00:00:00 UTC以来的毫秒数。

unix_seconds (col)

返回自1970年1月1日00:00:00 UTC以来的秒数。

window_time (窗口列)

计算来自窗口列的事件时间。

Collection Functions

array (*列)

创建一个新的数组列。

array_contains (列, 值)

集合函数:如果数组为null则返回null,如果数组包含给定值则返回true,否则返回false。

arrays_overlap (a1, a2)

集合函数:如果数组包含任何共同的非空元素,则返回true;如果不含共同非空元素且两个数组都非空,并且其中任何一个包含空元素,则返回null;否则返回false。

array_join (列, 分隔符[, 空值替换])

使用 分隔符 连接 的元素。

create_map (*列)

创建一个新的映射列。

slice (x, start, length)

集合函数:返回一个包含 x 中从索引 start 开始的所有元素的数组(数组索引从1开始,如果 start 为负,则从末尾开始)以及指定的 length

concat (*列)

将多个输入列连接在一起,形成一个单独的列。

array_position (列, 值)

集合函数:定位给定数组中给定值第一次出现的位置。

element_at (列, 提取)

集合函数:如果 col 是数组,则返回在 extraction 中给定索引处的数组元素。

array_append (列, 值)

集合函数:返回col1中的元素数组,以及添加的col2中的元素,最后在数组的末尾。

array_size (col)

返回数组中元素的总数。

array_sort (列[, 比较器])

集合函数:按升序对输入数组进行排序。

array_insert (数组,位置,值)

集合函数:在指定的数组索引中添加一个项到给定的数组。

array_remove (列, 元素)

集合函数:从给定数组中移除所有等于元素的元素。

array_prepend (列, 值)

集合函数:返回一个包含元素以及数组中所有元素的数组。

array_distinct (col)

集合函数:从数组中移除重复值。

array_intersect (col1, col2)

集合函数:返回col1和col2的交集元素数组,去除重复项。

array_union (col1, col2)

集合函数:返回 col1 和 col2 的并集中的元素数组,不包含重复项。

array_except (col1, col2)

集合函数:返回col1中但不在col2中的元素数组,且不重复。

array_compact (col)

集合函数:从数组中移除空值。

transform (列, 函数)

返回经过转换后输入数组中每个元素的元素数组。

exists (列, 函数)

返回谓词是否适用于数组中的一个或多个元素。

forall (列, 函数)

返回一个谓词是否适用于数组中的每个元素。

filter (列, 条件)

返回一个数组,其中的元素在给定数组中满足一个谓词。

aggregate (col, initialValue, merge[, finish])

将二元运算符应用于初始状态和数组中的所有元素,并将其简化为单一状态。

zip_with (左边, 右边, 函数)

使用一个函数将两个给定数组按元素合并为一个单一数组。

transform_keys (列, 函数)

对映射中的每个键值对应用一个函数,并返回一个映射,结果作为这些对的新键。

transform_values (列, 函数)

对映射中的每个键值对应用一个函数,并返回一个映射,其中这些应用的结果作为对的新的值。

map_filter (列, 函数)

返回一个满足条件的键值对映射。

map_from_arrays (col1, col2)

根据两个数组创建一个新的地图。

map_zip_with (col1, col2, f)

使用一个函数将两个给定的映射按键合并为一个单一的映射。

explode (列)

为给定数组或映射中的每个元素返回一条新行。

explode_outer (col)

为给定数组或映射中的每个元素返回新行。

posexplode (col)

为给定数组或映射中的每个元素返回一个新行。

posexplode_outer (列)

为给定数组或映射中的每个元素返回一个新行。

inline (col)

将一个结构体数组展开为一个表。

inline_outer (col)

将结构数组展开为表格。

get (列, 索引)

集合函数:返回数组中给定(基于0)索引的元素。

get_json_object (col, path)

从指定的json 路径 中提取json字符串中的json对象,并返回提取的json对象的json字符串。

json_tuple (列, *字段)

根据给定的字段名为 json 列创建新行。

from_json (列,模式[, 选项])

将包含 JSON 字符串的列解析为一个 MapType ,键类型为 StringType ,值类型为 StructType ArrayType ,使用指定的模式。

schema_of_json (json[, options])

解析一个JSON字符串并推断其DDL格式的架构。

to_json (列[, 选项])

将包含 StructType ArrayType MapType 的列转换为 JSON 字符串。

json_array_length (col)

返回最外层 JSON 数组中的元素数量。

json_object_keys (col)

返回最外层JSON对象的所有键作为一个数组。

size (col)

集合函数:返回存储在列中的数组或映射的长度。

cardinality (col)

集合函数:返回存储在列中的数组或映射的长度。

struct (*列)

创建一个新的结构列。

sort_array (列[, 升序])

集合函数:根据数组元素的自然顺序对输入数组进行升序或降序排序。

array_max (列)

集合函数:返回数组的最大值。

array_min (col)

集合函数:返回数组的最小值。

shuffle (列)

集合函数:生成给定数组的随机排列。

reverse (col)

集合函数:返回一个反转的字符串或一个反向元素的数组。

flatten (列)

集合函数:从数组的数组中创建一个单一的数组。

sequence (开始, 结束[, 步长])

生成从 start stop 的整数序列,步长为 step

array_repeat (列, 计数)

集合函数:创建一个包含一列重复计数次数的数组。

map_contains_key (列, 值)

如果地图包含该键,则返回真。

map_keys (列)

集合函数:返回包含映射的键的无序数组。

map_values (列)

集合函数:返回一个包含映射值的无序数组。

map_entries (col)

集合函数:返回给定映射中所有条目的无序数组。

map_from_entries (列)

集合函数:将一组条目(键值结构类型)转换为值的映射。

arrays_zip (*列)

集合函数:返回一个合并的结构体数组,其中第 N 个结构体包含输入数组的所有第 N 个值。

map_concat (*列)

返回所有给定映射的并集。

from_csv (列, 模式[, 选项])

解析包含CSV字符串的列为具有指定模式的行。

schema_of_csv (csv[, options])

解析一个CSV字符串并推断其DDL格式的模式。

str_to_map (文本[, 对分隔符, 键值分隔符])

在使用分隔符将文本分割为键/值对后创建一个映射。

to_csv (列[, 选项])

将包含一个 StructType 的列转换为 CSV 字符串。

try_element_at (col, extraction)

(array, index) - 返回数组中给定(1为基数)索引的元素。

Partition Transformation Functions

years (列)

分区转换函数:用于将时间戳和日期转换为按年份分区的数据。

months (col)

分区变换函数:将时间戳和日期转换为每月分区数据的变换。

days (列)

分区转换函数:将时间戳和日期转换为将数据分区到天的转换。

hours (col)

分区转换函数:将时间戳转换为按小时分区数据的转换。

bucket (桶数量, 列)

分区转换函数:对任何类型进行转换,按输入列的哈希值进行分区。

Aggregate Functions

any_value (列[, 忽略空值])

返回某些行组的 col 值。

approxCountDistinct (列[, 相对标准差])

版本 1.3.0 中的新功能。

approx_count_distinct (col[, rsd])

聚合函数:返回一个新的 Column 用于列 col 的近似唯一计数。

approx_percentile (列, 百分比[, 准确度])

返回数值列 col 的近似 百分位数 ,这是按顺序排列的 col 值中的最小值(从小到大排序),使得不超过 percentage col 值小于或等于该值。

array_agg (col)

聚合函数:返回包含重复项的对象列表。

avg (列)

聚合函数:返回一组中值的平均值。

bit_and (列)

聚合函数:返回所有非空输入值的按位与,如果没有则返回null。

bit_or (列)

聚合函数:返回所有非空输入值的按位或,若无则返回空。

bit_xor (col)

聚合函数:返回所有非空输入值的按位异或,如果没有则返回空。

bool_and (列)

聚合函数:如果 col 的所有值都为真,则返回真。

bool_or (列)

聚合函数:如果 col 的至少一个值为真,则返回真。

collect_list (col)

聚合函数:返回包含重复项的对象列表。

collect_set (col)

聚合函数:返回一组去除重复元素的对象。

corr (col1, col2)

返回一个新的 Column ,用于计算 col1 col2 之间的皮尔逊相关系数。

count (列)

聚合函数:返回组中的项目数量。

count_distinct (列, *列)

返回一个新的 Column 用于 col cols 的唯一计数。

countDistinct (列,*列)

返回一个新的 Column 用于 col cols 的唯一计数.

count_min_sketch (列, 误差, 置信度, 随机种子)

返回具有给定的esp、置信度和种子的列的计数-最小草图。

count_if (col)

返回 col TRUE 值的数量。

covar_pop (col1, col2)

返回一个新的 Column ,用于 col1 col2 的总体协方差。

covar_samp (col1, col2)

返回一个新的 Column ,用于 col1 col2 的样本协方差。

every (列)

聚合函数:如果 col 的所有值都为真,则返回真。

first (col[, ignorenulls])

聚合函数:返回组中的第一个值。

first_value (列[, 忽略空值])

返回一组行中 col 的第一个值。

grouping (col)

聚合函数:指示在 GROUP BY 列表中指定的列是否被聚合,返回 1 表示已聚合,返回 0 表示未聚合。

grouping_id (*列)

聚合函数:返回分组的级别,等于

histogram_numeric (列, 区间数)

使用 nb 个区间计算数值 'col' 的直方图。

hll_sketch_agg (列[, lgConfigK])

聚合函数:返回配置了lgConfigK参数的Datasketches HllSketch的可更新二进制表示。

hll_union_agg (col[, allowDifferentLgConfigK])

聚合函数:返回Datasketches HllSketch的可更新二进制表示,该表示通过Datasketches Union实例合并先前创建的Datasketches HllSketch实例生成。

kurtosis (col)

聚合函数:返回一组值的峰度。

last (列[, 忽略空值])

聚合函数:返回组中的最后一个值。

last_value (列[, 忽略空值])

返回一组行中 col 的最后一个值。

max (列)

聚合函数:返回一组中表达式的最大值。

max_by (列, 顺序)

返回与ord的最大值相关联的值。

mean (列)

聚合函数:返回一组中值的平均值。

median (列)

返回一组值的中位数。

min (列)

聚合函数:返回组中表达式的最小值。

min_by (列, 顺序)

返回与ord的最小值相关联的值。

mode (列)

返回一组中最常见的值。

percentile (列, 百分比[, 频率])

返回数值列 expr 在给定百分比下的确切百分位数,值范围在 [0.0, 1.0] 之间。

percentile_approx (col, percentage[, accuracy])

返回数值列 col 的近似 百分位数 ,这是按顺序排列的 col 值中的最小值(从小到大排序),使得不超过 percentage col 值小于或等于该值。

product (列)

聚合函数:返回一组中值的乘积。

reduce (col, initialValue, merge[, finish])

将二元运算符应用于初始状态和数组中的所有元素,并将其简化为单一状态。

regr_avgx (y, x)

聚合函数:返回组中非空对的自变量的平均值,其中 y 是因变量, x 是自变量。

regr_avgy (y, x)

聚合函数:返回组中非空对的因变量的平均值,其中 y 是因变量, x 是自变量。

regr_count (y, x)

聚合函数:返回一组中非空数对的数量,其中 y 是因变量, x 是自变量。

regr_intercept (y, x)

聚合函数:返回组中非空对的单变量线性回归线的截距,其中 y 是因变量, x 是自变量。

regr_r2 (y, x)

聚合函数:返回组中非空对的决定系数,其中 y 是因变量,而 x 是自变量。

regr_slope (y, x)

聚合函数:返回一组中非空对的线性回归线的斜率,其中 y 是因变量, x 是自变量。

regr_sxx (y, x)

聚合函数:返回 REGR_COUNT(y, x) * VAR_POP(x) 对于组中的非空对,其中 y 是因变量, x 是自变量。

regr_sxy (y, x)

聚合函数:返回组中非空对的 REGR_COUNT(y, x) * COVAR_POP(y, x),其中 y 是因变量, x 是自变量。

regr_syy (y, x)

聚合函数:返回 REGR_COUNT(y, x) * VAR_POP(y) 对于一组中的非空配对,其中 y 是因变量, x 是自变量。

skewness (列)

聚合函数:返回一组中值的偏态。

some (col)

聚合函数:如果 col 的至少一个值为真,则返回真。

std (列)

聚合函数:stddev_samp 的别名。

stddev (列)

聚合函数:stddev_samp的别名。

stddev_pop (列)

聚合函数:返回一组中表达式的总体标准差。

stddev_samp (col)

聚合函数:返回组中表达式的无偏样本标准差。

sum (col)

聚合函数:返回表达式中所有值的总和。

sum_distinct (col)

聚合函数:返回表达式中不同值的总和。

sumDistinct (col)

聚合函数:返回表达式中不同值的总和。

var_pop (col)

聚合函数:返回一组中值的总体方差。

var_samp (列)

聚合函数:返回一组中值的无偏样本方差。

variance (col)

聚合函数:var_samp的别名

Window Functions

cume_dist ()

窗口函数:返回窗口分区内值的累积分布,即。

dense_rank ()

窗口函数:返回窗口分区内行的排名,没有任何间隙。

lag (列[, 偏移量, 默认值])

窗口函数:返回当前行之前 offset 行的值,如果当前行之前少于 offset 行,则返回 default

lead (列[, 偏移量, 默认值])

窗口函数:返回当前行之后 偏移 行的值,如果当前行之后少于 偏移 行,则返回 默认

nth_value (列, 偏移[, 忽略空值])

窗口函数:返回窗口框架的 offset 行的值(从1开始计数),如果窗口框架的大小小于 offset 行,则返回 null

ntile (n)

窗口函数:返回有序窗口分区中的ntile组ID(从1到 n ,包括n)。

percent_rank ()

窗口函数:返回相对排名(即。

rank ()

窗口函数:返回窗口分区内行的排名。

row_number ()

窗口函数:在窗口分区内返回从1开始的顺序编号。

Sort Functions

asc (列)

返回基于给定列名称的升序排序表达式。

asc_nulls_first (列)

返回一个排序表达式,基于给定列名的升序顺序,null值在非null值之前返回。

asc_nulls_last (列)

返回一个排序表达式,该表达式基于给定列名的升序,并且空值出现在非空值之后。

desc (列)

根据给定列名的降序返回排序表达式。

desc_nulls_first (列)

根据给定列名的降序返回一个排序表达式,空值在非空值之前出现。

desc_nulls_last (列)

返回一个排序表达式,基于给定列名的降序排列,null值出现在非null值之后。

String Functions

ascii (col)

计算字符串列第一个字符的数值。

base64 (col)

计算二进制列的BASE64编码并将其作为字符串列返回。

bit_length (col)

计算指定字符串列的位长度。

btrim (字符串[, 修剪])

移除 str 的前导和尾随 trim 字符。

char (列)

返回具有与 col 的二进制等效的ASCII字符。

character_length (字符串)

返回字符串数据的字符长度或二进制数据的字节数。

char_length (字符串)

返回字符串数据的字符长度或二进制数据的字节数。

concat_ws (分隔符, *列)

将多个输入字符串列连接在一起,形成一个单一的字符串列,使用给定的分隔符。

contains (左, 右)

返回一个布尔值。

decode (列, 字符集)

根据提供的字符集(‘US-ASCII’,‘ISO-8859-1’,‘UTF-8’,‘UTF-16BE’,‘UTF-16LE’,‘UTF-16’)将第一个参数从二进制转换为字符串。

elt (*输入)

返回第 n 个输入,例如,当 n 为 2 时,返回 input2

encode (列, 字符集)

使用提供的字符集(‘US-ASCII’,‘ISO-8859-1’,‘UTF-8’,‘UTF-16BE’,‘UTF-16LE’,‘UTF-16’)将第一个参数从字符串计算为二进制。

endswith (字符串, 后缀)

返回一个布尔值。

find_in_set (字符串, 字符串数组)

返回给定字符串( str )在以逗号分隔的列表( strArray )中的索引(基于1)。

format_number (列, 小数位数)

将数字 X 格式化为像 ‘#,–#,–#.–’ 的格式,四舍五入到 d 位小数,使用 HALF_EVEN 舍入模式,并返回结果作为字符串。

format_string (格式, *列)

以printf风格格式化参数,并将结果作为字符串列返回。

ilike (字符串, 模式[, 转义字符])

如果 str 不区分大小写地与 pattern 匹配,并且 escape ,则返回 true;如果任何参数为 null,则返回 null;否则返回 false。

initcap (列)

将句子中每个单词的首字母转换为大写。

instr (字符串, 子字符串)

在给定字符串中找到 substr 列出现的第一次位置。

lcase (字符串)

返回 str ,将所有字符转换为小写。

length (col)

计算字符串数据的字符长度或二进制数据的字节数。

like (字符串, 模式[, 转义字符])

如果 str 与 pattern 通过 escape 匹配则返回 true,任何参数为 null 则返回 null,其他情况返回 false。

lower (列)

将字符串表达式转换为小写。

left (字符串, 长度)

返回字符串 str 中最左边的 len`(`len 可以是字符串类型) 个字符,如果 len 小于或等于 0,则结果为空字符串。

levenshtein (左, 右[, 阈值])

计算两个给定字符串的Levenshtein距离。

locate (子字符串, 字符串[, 位置])

在字符串列中查找substr第一次出现的位置,位于位置pos之后。

lpad (col, len, pad)

将字符串列左填充至宽度 len ,使用 pad

ltrim (col)

修剪指定字符串值左端的空格。

mask (col[, upperChar, lowerChar, digitChar, …])

掩码给定的字符串值。

octet_length (col)

计算指定字符串列的字节长度。

parse_url (网址, 要提取的部分[, 键])

从 URL 中提取部分内容。

position (substr, str[, start])

返回在位置 start 之后 str 中第一次出现 substr 的位置。

printf (格式, *列)

以printf风格格式化参数,并将结果作为字符串列返回。

rlike (字符串, 正则表达式)

如果 str 匹配Java正则表达式 regexp ,则返回true,否则返回false。

regexp (字符串, 正则表达式)

如果 str 匹配 Java 正则表达式 regexp ,则返回 true,否则返回 false。

regexp_like (字符串, 正则表达式)

如果 str 匹配 Java 正则表达式 regexp ,则返回 true,否则返回 false。

regexp_count (字符串, 正则表达式)

返回在字符串 str 中与 Java 正则表达式模式 regexp 匹配的次数。

regexp_extract (字符串, 模式, 索引)

从指定的字符串列中提取由Java正则表达式 regexp 匹配的特定组。

regexp_extract_all (字符串, 正则表达式[, 索引])

提取所有在 str 中匹配Java正则表达式 regexp 并对应于正则表达式组索引的字符串。

regexp_replace (字符串, 模式, 替换)

替换所有与正则表达式匹配的指定字符串值的子字符串为替换内容。

regexp_substr (字符串, 正则表达式)

返回在字符串 str 中匹配 Java 正则表达式 regexp 的子字符串。

regexp_instr (字符串, 正则表达式[, 索引])

提取所有在 str 中匹配Java正则表达式 regexp 并对应正则表达式组索引的字符串。

replace (源, 搜索[, 替换])

将所有出现的 search 替换为 replace

right (字符串, 长度)

返回字符串 str 中最右边的 len`(`len (可以是字符串类型)个字符,如果 len 小于或等于 0,结果是一个空字符串。

ucase (字符串)

返回 str ,所有字符均已转换为大写。

unbase64 (col)

解码一个BASE64编码的字符串列,并将其作为二进制列返回。

rpad (列, 长度, 填充)

将字符串列右对齐到宽度 len ,使用 pad 填充。

repeat (列, n)

重复一个字符串列n次,并将其作为一个新的字符串列返回。

rtrim (col)

修剪指定字符串值右端的空格。

soundex (col)

返回字符串的 SoundEx 编码

split (字符串, 模式[, 限制])

根据给定模式的匹配将字符串分割。

split_part (源, 分隔符, 部分编号)

通过分隔符拆分 str 并返回请求的拆分部分(基于1)。

startswith (字符串, 前缀)

返回一个布尔值。

substr (字符串, 位置[, 长度])

返回从 pos 开始的 str 的子字符串,长度为 len ,或者从 pos 开始的字节数组的切片,长度为 len

substring (字符串, 位置, 长度)

子字符串从 pos 开始,长度为 len 当 str 为字符串类型时,或者返回从字节数组中以 pos 开始的切片,长度为 len 当 str 为二进制类型。

substring_index (字符串, 分隔符, 计数)

返回字符串 str 中在分隔符 delim 前的 count 次出现的子字符串。

overlay (源字符串, 替换字符串, 位置[, 长度])

src 的字节位置 pos 开始,用 replace 覆盖 src 的指定部分,持续 len 个字节。

sentences (字符串[, 语言, 国家])

将字符串分割为句子数组,每个句子是一个单词数组。

to_binary (col[, format])

根据提供的 format 将输入 col 转换为二进制值。

to_char (列, 格式)

根据 format col 转换为字符串。

to_number (col, format)

根据字符串格式‘format’将字符串‘col’转换为数字。

to_varchar (列, 格式)

根据 format col 转换为字符串。

translate (源列, 匹配, 替换)

一个函数将 srcCol 中的任何字符转换为 matching 中的字符。

trim (列)

去掉指定字符串列两端的空格。

upper (列)

将字符串表达式转换为大写。

url_decode (字符串)

使用特定的编码方案解码‘application/x-www-form-urlencoded’格式中的 str

url_encode (字符串)

将字符串翻译为'application/x-www-form-urlencoded'格式,使用特定的编码方案。

Bitwise Functions

bit_count (列)

返回参数 expr 中设置的位数,作为无符号 64 位整数,如果参数为 NULL,则返回 NULL。

bit_get (col, pos)

返回指定位置的位的值(0或1)。

getbit (col, pos)

返回指定位置的位的值(0或1)。

Call Functions

call_function (函数名称, *列)

调用一个SQL函数。

call_udf (udfName, *cols)

调用用户定义的函数。

pandas_udf ([f, returnType, functionType])

创建一个 pandas 用户定义函数(也称为

udf ([f, returnType, useArrow])

创建一个用户定义的函数 (UDF)。

udtf ([cls, useArrow])

创建一个用户定义的表函数 (UDTF)。

unwrap_udt (col)

展开 UDT 数据类型列为其基础类型。

Misc Functions

aes_decrypt (输入,密钥[, 模式,填充,aad])

返回使用AES在 模式 中对 输入 进行解密的值,使用 填充

aes_encrypt (输入, 密钥[, 模式, 填充, 初始化向量, 附加数据])

返回使用指定的 padding 在给定 模式 下通过AES加密的 input 的值。

bitmap_bit_position (列)

返回给定输入列的位位置。

bitmap_bucket_number (col)

返回给定输入列的桶编号。

bitmap_construct_agg (列)

返回一个位图,其中包含来自输入列的所有值中设置的位的位置。

bitmap_count (列)

返回输入位图中设置的位数。

bitmap_or_agg (col)

返回一个位图,它是输入列中所有位图的按位或。

current_catalog ()

返回当前目录。

current_database ()

返回当前数据库。

current_schema ()

返回当前数据库。

current_user ()

返回当前数据库。

input_file_block_length ()

返回正在读取的块的长度,如果不可用则返回-1。

input_file_block_start ()

返回正在读取的块的起始偏移量,如果不可用则返回 -1。

md5 (col)

计算MD5摘要并返回值作为32字符的十六进制字符串。

sha (列)

返回 col 的sha1哈希值,格式为十六进制字符串。

sha1 (col)

返回SHA-1的十六进制字符串结果。

sha2 (列, 位数)

返回SHA-2系列哈希函数(SHA-224、SHA-256、SHA-384 和 SHA-512)的十六进制字符串结果。

crc32 (col)

计算二进制列的循环冗余校验值 (CRC32),并将该值作为 bigint 返回。

hash (*列)

计算给定列的哈希码,并将结果作为整数列返回。

xxhash64 (*列)

计算给定列的哈希码,使用xxHash算法的64位变体,并将结果作为长整型列返回。

assert_true (col[, errMsg])

如果输入列为 true ,则返回 null ; 否则抛出带有提供的错误消息的异常。

raise_error (错误信息)

抛出一个带有提供的错误信息的异常。

reflect (*列)

通过反射调用一个方法。

hll_sketch_estimate (col)

返回给定Datasketches HllSketch的二进制表示的唯一值的估计数量。

hll_union (col1, col2[, allowDifferentLgConfigK])

使用Datasketches Union对象合并两个Datasketches HllSketch对象的二进制表示。

java_method (*列)

通过反射调用方法。

stack (*列)

col1 , …, colk 分成 n 行。

try_aes_decrypt (输入, 密钥[, 模式, 填充, aad])

这是一个特殊版本的 aes_decrypt ,它执行相同的操作,但如果无法进行解密,则返回NULL值而不是引发错误。

typeof (col)

返回输入的数据类型的DDL格式字符串。

user ()

返回当前数据库。

version ()

返回Spark版本。

Predicate Functions

equal_null (col1, col2)

对于非空操作数,返回与EQUAL(=)运算符相同的结果,但如果两个都为空,则返回true,如果其中一个为空,则返回false。

ifnull (col1, col2)

如果 col1 为 null,则返回 col2 ;否则返回 col1

isnotnull (col)

如果 col 不为null,则返回true,否则返回false。

nullif (col1, col2)

如果 col1 等于 col2 ,则返回 null,否则返回 col1

nvl (列1, 列2)

如果 col1 为 null,则返回 col2 ,否则返回 col1

nvl2 (col1, col2, col3)

如果 col1 不为null,则返回 col2 ,否则返回 col3

Xml Functions

xpath (xml, path)

返回一个字符串数组,该数组包含与 XPath 表达式匹配的 xml 节点中的值。

xpath_boolean (xml, path)

如果XPath表达式评估为真,或者找到匹配的节点,则返回true。

xpath_double (xml, path)

返回一个双精度值,如果没有找到匹配则返回零,如果找到匹配但值非数值则返回NaN。

xpath_float (xml, path)

返回一个浮点值,如果未找到匹配则返回值零,如果找到匹配但值非数字则返回NaN。

xpath_int (xml, path)

返回一个整数值,如果没有找到匹配则返回零,如果找到匹配但值为非数字则返回零。

xpath_long (xml, path)

返回一个长整型值,如果没有找到匹配,则返回零,或者如果找到匹配但值不是数字,则返回零。

xpath_number (xml, path)

返回一个双精度值,如果没有找到匹配项则返回值零,如果找到匹配项但值为非数字则返回NaN。

xpath_short (xml, path)

返回一个短整数值,如果没有找到匹配,或者找到匹配但值是非数字,则返回零。

xpath_string (xml, path)

返回第一个与XPath表达式匹配的xml节点的文本内容。