Lambda-függvények
A következőre vonatkozik: Databricks SQL Databricks Runtime
Paraméteres kifejezés, amely átadható egy függvénynek a működés szabályozásához.
Például array_sort függvény egy lambda függvényt fogad el argumentumként az egyéni rendezési sorrend meghatározásához.
Szintaxis
{ param -> expr |
(param1 [, ...] ) -> expr }
Paraméterek
paramN
: A szülőfüggvény által a lambda függvény argumentumainak átadására használt azonosító .expr
: Bármely egyszerű kifejezésre való hivatkozásparamN
, amely nem tartalmaz al lekérdezést vagy felhasználó által definiált SQL-függvényt.
Visszatérési érték
Az eredménytípust a következő eredménytípus expr
határozza meg: .
Ha több paramN
is van, a paraméterneveknek egyedinek kell lenniük. A paraméterek típusait az invoking függvény állítja be.
Az expression
értéknek érvényesnek kell lennie ezekre a típusokra, és az eredménytípusnak meg kell felelnie a meghívási függvények meghatározott elvárásainak.
Példák
A array_sort függvény két paraméterrel rendelkező lambda függvényt vár.
A paramétertípusok a rendezendő tömb elemeinek típusa lesznek.
A kifejezés várhatóan egy egész számot ad vissza, ahol a -1 azt jelenti param1
<param2
, a 0 azt jelenti param1
= param2
, és egyébként az 1 értéket.
Ha a SZTRING tömböt jobbról balra lexikális sorrendben szeretné rendezni, használja az alábbi lambda függvényt.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
A Lambda-függvények definiálása és használata ad hoc. A függvénydefiníció tehát a következő argumentum:
> SELECT array_sort(array('Hello', 'World'),
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END);
[World, Hello]