函数调用
描述
函数调用在将参数与函数的形参关联后,执行内置函数或用户定义函数。
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 一个或多个表达式。每个表达式可以由表实参中存在的列、字面量、参数、变量和确定性函数组成。 
 
- 
                
 
- 
            
 
-