Megosztás a következőn keresztül:


Függvényhívás

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet 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

  • function_name

    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.

  • argExpr

    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.

  • star_clause

    Rövidítés a záradék összes hivatkozható oszlopának FROM , illetve egy adott táblahivatkozás oszlopainak vagy mezőinek a FROM záradékban való elnevezéséhez.

  • table_argument

    igen pipa Databricks SQL igen pipa 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

      igen bejelölve Databricks SQL igen bejelölve 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.

      • partition_expr

        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

      igen bejelölve Databricks SQL igen bejelölve 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.

      • order_by_expr

        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.

  • namedParameter

    igen pipa Databricks SQL igen pipa 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