Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime
Espressione con parametri che può essere passata a una funzione per controllarne il comportamento.
Ad esempio, array_sort la funzione accetta una funzione lambda come argomento per definire un ordinamento personalizzato.
Sintassi
{ param -> expr |
(param1 [, ...] ) -> expr }
Parametri
-
paramN: un identificatore utilizzato dalla funzione genitore per trasmettere argomenti alla funzione lambda. -
expr: Qualsiasi espressione semplice che fa riferimento aparamN, che non contiene una sottoquery o una funzione definita dall'utente SQL.
Restituzioni
Il tipo di risultato è definito dal tipo di risultato di expr.
Se sono presenti più di un paramNoggetto , i nomi dei parametri devono essere univoci. I tipi dei parametri vengono impostati dalla funzione di richiamo.
Deve expression essere valido per questi tipi e il tipo di risultato deve corrispondere alle aspettative definite delle funzioni di richiamo.
Esempi
La array_sort funzione prevede una funzione lambda con due parametri.
I tipi di parametro saranno il tipo degli elementi della matrice da ordinare.
L'espressione deve restituire un valore INTEGER in cui -1 significa param1<param2, 0 indica param1 = param2e 1 in caso contrario.
Per ordinare una MATRICE di STRING in un ordine lessicale da destra a sinistra, è possibile usare la funzione lambda seguente.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
Le funzioni lambda vengono definite e usate ad hoc. La definizione della funzione è dunque l'argomento.
> 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]