Lambda-függvények
A következőkre vonatkozik: Databricks SQL Databricks Runtime
Paraméteres kifejezés, amely átadható egy függvénynek annak viselkedésének szabályozásához.
Array_sort függvény például egy lambda függvényt fogad el argumentumként egy egyéni rendezési sorrend definiálásához.
Syntax
{ 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ésreparamN
való hivatkozás, amely nem tartalmaz al lekérdezést vagy felhasználó által definiált SQL-függvényt.
Válaszok
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.
Ezeknek expression
a típusoknak érvényesnek kell lenniük, és az eredménytípusnak meg kell egyeznie az invoking függvények meghatározott elvárásaival.
Példák
A array_sort függvény egy lambda függvényt vár két paraméterrel.
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.
A sztringtömbök jobbról balra lexikális sorrendbe rendezéséhez használhatja a következő 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 meghatározása és használata ad hoc. A függvénydefiníció tehát az 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]