函数调用
描述
函数调用在将参数与函数的形参关联后,执行内置函数或用户定义函数。
Spark 支持按位置参数调用以及按名称参数调用。
按位置参数调用
每个实参都按照其指定的位置分配给匹配的形参。
所有函数都可以使用这种表示法,除非明确规定需要按名称参数调用。
如果函数支持可选参数,则未指定实参的尾随参数将使用默认值。
按名称参数调用
实参使用函数发布的形参名称显式分配给形参。
此表示法必须用于部分内置函数,这些函数允许大量可选参数,使得按位置参数调用不切实际。这些函数可能允许混合调用,其中前导参数集按位置分配,而尾随的可选参数集按名称分配。
语法
function_name ( [ argExpr | table_argument ] [, ...]
[ namedParameter => [ argExpr | table_argument ] [, ...] )
table_argument
{ TABLE ( { table_name | query } )
[ table_partition ]
[ table_order ]
table_partitioning
{ WITH SINGLE PARTITION |
{ PARTITION | DISTRIBUTE } BY { partition_expr | ( partition_expr [, ...] ) } }
table_ordering
{ { ORDER | SORT } BY { order_by_expr | ( order_by_expr [, ...] } }
参数
-
function_name
内置函数或用户定义函数的名称。在解析不合格的 function_name 时,Spark 将首先考虑内置函数或临时函数,然后是当前模式中的函数。
-
argExpr
任何可以隐式转换为其关联形参的表达式。
函数可能会对实参施加进一步的限制,例如强制要求字面量、常量表达式或特定值。
-
namedParameter
将 argExpr 分配到的参数的非限定名称。
Python UDF 和特定内置函数支持命名参数表示法。
-
table_argument
指定一个作为表的参数的实参。
-
TABLE ( table_name )
通过名称标识要传递给函数的表。
-
TABLE ( query )
将查询结果传递给函数。
-
表分区
可选地指定表实参是否已分区。如果未指定,则分区由 Spark 确定。
-
WITH SINGLE PARTITION
表实参未分区。
-
partition_expr
一个或多个定义如何对表实参进行分区的表达式。每个表达式可以由表实参中存在的列、字面量、参数、变量和确定性函数组成。
-
table_ordering
可选地指定表实参的每个分区的结果行传递给函数的顺序。
默认情况下,顺序是未定义的。
-
order_by_expr
一个或多个表达式。每个表达式可以由表实参中存在的列、字面量、参数、变量和确定性函数组成。
-
-
-