Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Een functieaanroep voert een ingebouwde functie of een door de gebruiker gedefinieerde functie uit nadat argumenten zijn gekoppeld aan de parameters van de functie.
Azure Databricks biedt ondersteuning voor aanroepen van positionele parameters en benoemde parameteraanroepen.
Aanroepen van positionele parameters
Elk argument wordt toegewezen aan de overeenkomende parameter op de positie die wordt opgegeven.
Deze notatie kan door alle functies worden gebruikt, tenzij expliciet wordt gedocumenteerd dat aanroepen van benoemde parameters is vereist.
Als de functie optionele parameters ondersteunt, worden volgparameters waarvoor geen argumenten zijn opgegeven, standaard ingesteld.
Aanroepen van benoemde parameters
Argumenten worden expliciet toegewezen aan parameters met behulp van de parameternamen die door de functie zijn gepubliceerd.
Deze notatie moet worden gebruikt voor een geselecteerde subset van ingebouwde functies die talloze optionele parameters toestaan, waardoor het aanroepen van positionele parameters onpraktisch wordt. Deze functies kunnen mogelijk een gemengde aanroep toestaan, waar van de voorste parameters wordt verwacht dat ze op positie worden toegewezen en de achterste, optionele set parameters op naam.
Aanroepen van benoemde parameters, inclusief gemengde aanroep, kunnen ook worden gebruikt voor SQL UDF en Python UDF.
Syntaxis
function_name ( [ argExpr | table_argument | star_clause ] [, ...]
[ 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 [, ...] } }
Parameterwaarden
-
De naam van de ingebouwde of door de gebruiker gedefinieerde functie. Wanneer een niet-gekwalificeerde
function_namemoet worden opgelost, zal Azure Databricks eerst een ingebouwde of tijdelijke functie overwegen en daarna een functie in het huidige schema. -
Elke expressie die impliciet kan worden gecast naar de parameter waaraan deze is gekoppeld.
De functie kan verdere beperkingen opleggen aan het argument, zoals letterlijke waarden, constante expressiesof specifieke waarden.
-
Een afkorting voor het benoemen van alle kolommen waarnaar kan worden verwezen in de
FROMcomponent, of een specifieke tabelreferentiekolommen of velden in deFROMcomponent. tabel_argument
Databricks SQL
Databricks Runtime 14.0 en hogerHiermee geeft u een argument op voor een parameter die een tabel is.
TABLE( table_name )Identificeert een tabel die op naam aan de functie moet worden doorgegeven.
TABLE( query )Geeft het resultaat van
queryde functie door.tabelpartitionering
Databricks SQL
Databricks Runtime 14.1 en hogerHiermee geeft u optioneel aan dat het tabelargument is gepartitioneerd. Als de partitionering niet is opgegeven, wordt bepaald door Azure Databricks.
WITH SINGLE PARTITIONHet tabelargument is niet gepartitioneerd.
-
Een of meer expressies die definiƫren hoe u het tabelargument partitioneert. Elke expressie kan bestaan uit kolommen die worden weergegeven in het tabelargument, letterlijke waarden, parameters, variabelen en deterministische functies.
table-ordering
Databricks SQL
Databricks Runtime 14.1 en hogerU kunt desgewenst een volgorde opgegeven waarin de resultaatrijen van elke partitie van het tabelargument worden doorgegeven aan de functie.
Standaard is de volgorde niet gedefinieerd.
-
Een of meer expressies. Elke expressie kan bestaan uit kolommen die worden weergegeven in het tabelargument, letterlijke waarden, parameters, variabelen en deterministische functies.
-
-
Databricks SQL
Databricks Runtime 14.0 en hogerDe niet-gekwalificeerde naam van een parameter waaraan de
argExprparameter is toegewezen.Benoemde parameter notatie wordt ondersteund voor SQL UDF, Python UDF en specifieke ingebouwde functies.
Voorbeelden
-- The substr function has three parameter and expects arguents to be passed by position.
> SELECT substr('hello', 3, 2);
ll
-- The last parameter, the length, of substr is optional, when it is ommited it retrns the remainder of the string.
> SELECT substr('hello', 3);
llo
-- Use the star clause to turn a set of columns into an array.
> SELECT array(*) FROM VALUES (1, 2, 3) AS t(a, b, c);
[1, 2, 3]
-- The second parameter, start position, is not optional
> SELECT substr('hello');
Error: WRONG_NUM_ARGS
-- read_files() is a function that accepts numerous parameters, many of which depend on the data source
-- The first parameter is positional, after that use named parameter invocation
> SELECT * FROM read_files(
's3://bucket/path',
format => 'csv',
schema => 'id int, ts timestamp, event string');
-- cloud_files_state() is a function that expects a table name as an argument
> SELECT path FROM cloud_files_state(TABLE(mytable));
/some/input/path
/other/input/path
-- Invoking a SQL UDF using named parameter invocation
> CREATE TEMPORARY FUNCTION increase(base INT, factor FLOAT DEFAULT 1) RETURNS INT RETURN base * factor;
-- Out of order assignment
> SELECT increase(factor => 1.2, base => 100);
120
-- Mixed invocation
> SELECT increase(100, factor => 1.3);
130
-- Using default
> SELECT increase(base => 100);
100
-- No position invocation after named invocation is allowed
> SELECT increase(base => 100, 1.4);
Error: UNEXPECTED_POSITIONAL_ARGUMENT