Databricks SQL lambda függvények

Paraméteres kifejezés, amely a függvénynek továbbadva szabályozható annak viselkedése.

A array_sort függvény (Databricks SQL) például egy lambda függvényt fogad el argumentumként egy egyéni rendezési sorrend meghatározásához.

Szintaxis

{ param -> expr |
  (param1 [, ...] ) -> expr }

Paraméterek

  • paramN: A paramN függvény által a lambda függvény argumentumának bérleteként használt azonosító.
  • expr: Bármely, a kifejezésre hivatkozó paramN egyszerű kifejezés, amely nem tartalmaz segédlekérdezéseket.

Válaszok

Az eredménytípust a eredmény típusa határozza expr meg.

Ha egynél több van, a paramN paraméterneveknek egyedinek kell lennie. A paraméterek típusait a invoking függvény adja meg. A típusnak érvényesnek kell lennie ezekre a típusokra, és az eredménytípusnak meg kell egyeznie a invoking függvények meghatározott expression elvárásaival.

Példák

A array_sort függvény (Databricks SQL) egy lambda függvényt vár két paraméterből. A paramétertípusok a rendezniandó tömb elemeinek típusa lesznek. A kifejezésnek egész számra kell számítania, ahol a -1 a , a 0 és az param1<param2param1 = param2 1 értékeket jelenti.

Sztringtömbök jobbról balra lexikális sorrendben való rendezéshez 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 alkalmi. Tehát a függvénydefiníció a 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]