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


Lambda-függvények

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

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

Válaszok

Az eredménytípust a következő eredménytípus exprhatározza meg: .

Ha több paramNis 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]