Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime
Expresión parametrizada que se puede pasar a una función para controlar su comportamiento.
Por ejemplo, array_sort la función acepta una función lambda como argumento para definir un criterio de ordenación personalizado.
Sintaxis
{ param -> expr |
(param1 [, ...] ) -> expr }
Parámetros
-
paramN: identificador que la función primaria usa para pasar argumentos de la función lambda. -
expr: cualquier expresión simple que haga referencia aparamN, que no contenga una subconsulta o una función definida por el usuario de SQL.
Devoluciones
El tipo de resultado viene definido por el de expr.
Si hay más de un paramN, los nombres de parámetro deben ser únicos. Los tipos de los parámetros los establece la función que se invoca.
expression debe ser válido para estos tipos; por su parte, el tipo de resultado debe coincidir con las expectativas definidas de las funciones que se invocan.
Ejemplos
La array_sort función espera una función lambda con dos parámetros.
Los tipos de parámetro serán el tipo de los elementos de la matriz que se van a ordenar.
Se espera que la expresión devuelva un INTEGER, donde -1 significa param1<param2, 0, param1 = param2 y 1, lo contrario.
Para ordenar una matriz de cadenas en un orden léxico de derecha a izquierda, puede usar la siguiente función lambda.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
Las funciones lambda se definen y usan ad hoc. Por lo tanto, la definición de función es el argumento:
> 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]