Table-Valued Functions¶
Table-Valued Functions (TFVs) are functions that return a table (as a LogicalPlan) that can be used anywhere that a regular (scalar) table is allowed.
Table functions behave similarly to views, but, as functions in general, table functions accept parameters.
Table-Valued Functions are represented as UnresolvedTableValuedFunction logical operators in logical plans (after AstBuilder is requested to parse a table-valued function in a SQL statement).
Google BigQuery Documentation
Read up on table-valued functions in the official documentation of Google BigQuery (for a lack of a better documentation).
Spark SQL supports Logical Operators and Generator expressions as table-valued functions.
| Name | Logical Operator | Generator Expression | 
|---|---|---|
range |  Range |  |
explode |  Explode |  |
explode_outer |  Explode |  |
inline |  Inline | |
inline_outer |  Inline | |
json_tuple |  JsonTuple |  |
posexplode |  PosExplode |  |
posexplode_outer |  PosExplode |  |
stack |  Stack |  
Custom table-valued functions can be registered using SparkSessionExtensions.
Spark SQL uses the SimpleTableFunctionRegistry to manage the built-in table-valued functions.