Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Databricks SQL
Databricks Runtime
A függvényhívások egy beépített vagy felhasználó által definiált függvényt hajtanak végre, miután argumentumokat társítanak a függvény paramétereihez.
Az Azure Databricks támogatja a pozícióparaméter-meghívást , valamint az elnevezett paraméter-meghívást.
Pozícióparaméter meghívása
Minden argumentum a megadott pozícióban lévő egyező paraméterhez van rendelve.
Ezt a jelölést minden függvény használhatja, kivéve, ha kifejezetten dokumentálja, hogy a névvel ellátott paraméter-meghívás szükséges.
Ha a függvény támogatja az opcionális paramétereket, akkor a záró paraméterek, amelyekhez nem adtak meg argumentumokat, alapértelmezett értéket kapnak.
Elnevezett paraméter meghívása
Az argumentumok explicit módon vannak hozzárendelve a paraméterekhez a függvény által közzétett paraméternevek használatával.
Ezt a jelölést beépített függvények kiválasztott részhalmazához kell használni, amelyek számos választható paramétert engedélyeznek, így a pozícióparaméter meghívása nem praktikus. Ezek a függvények lehetővé tehetnek egy vegyes hívást, ahol azt várják, hogy a kezdő paraméterkészletet pozíció szerint, a záró, opcionális paraméterkészletet pedig név szerint hozzák hozzárendelni.
Az elnevezett paraméterhívás, beleértve a vegyes meghívást is, SQL UDF-hez és Python UDF-hez is használható.
Szintaxis
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 [, ...] } }
Paraméterek
-
A beépített vagy felhasználó által definiált függvény neve. Amikor egy nem minősített
function_name
-t old meg, az Azure Databricks először beépített vagy ideiglenes függvényt mérlegel, majd az aktuális séma funkcióját veszi figyelembe. -
Bármely kifejezés, amely implicit módon leadható ahhoz a paraméterhez, amelyhez társítva van.
A függvény további korlátozásokat írhat elő az argumentumra, például literálok, konstans kifejezésekvagy meghatározott értékek.
-
Rövidítés a záradék összes hivatkozható oszlopának
FROM
, illetve egy adott táblahivatkozás oszlopainak vagy mezőinek aFROM
záradékban való elnevezéséhez. table_argument
Databricks SQL
Databricks Runtime 14.0 és újabb
Meghatározza egy tábla paraméterhez tartozó argumentumot.
TABLE
( table_name )Egy táblát azonosít, amelyet név alapján szeretne átadni a függvénynek.
TABLE
( lekérdezés )Átadja az eredményt
query
a függvénynek.tábla particionálása
Databricks SQL
Databricks Runtime 14.1 és újabb
Opcionálisan megadja, hogy a táblaargumentum particionálásra kerül. Ha nincs megadva, a particionálást az Azure Databricks határozza meg.
WITH SINGLE PARTITION
A táblaargumentum nincs particionált.
-
A táblaargumentum particionálását meghatározó egy vagy több kifejezés. Minden kifejezés a tábla argumentumában, a literálokban, a paraméterekben, a változókban és a determinisztikus függvényekben található oszlopokból állhat.
table-ordering
Databricks SQL
Databricks Runtime 14.1 és újabb
Opcionálisan azt a sorrendet adja meg, amelyben a táblaargumentum egyes partícióinak eredménysorai a függvénynek lesznek átadva.
Alapértelmezés szerint a sorrend nincs meghatározva.
-
Egy vagy több kifejezés. Minden kifejezés a tábla argumentumában, a literálokban, a paraméterekben, a változókban és a determinisztikus függvényekben található oszlopokból állhat.
-
-
Databricks SQL
Databricks Runtime 14.0 és újabb
Annak a paraméternek a nem minősített neve, amelyhez a
argExpr
paraméter hozzá van rendelve.Az elnevezett paraméter jelölése az SQL UDF, a Python UDF és az adott beépített függvények esetében támogatott.
Példák
-- 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