Lambda 함수
적용 대상: Databricks SQL
Databricks Runtime
동작을 제어하기 위해 함수에 전달할 수 있는 매개 변수화된 식입니다.
예를 들어 array_sort 함수는 람다 함수를 인수로 받아 사용자 지정 정렬 순서를 정의합니다.
구문
{ param -> expr |
(param1 [, ...] ) -> expr }
매개 변수
-
paramN
: 부모 함수가 람다 함수에 대한 인수를 전달하는 데 사용하는 식별자. -
expr
:paramN
를 참조하는 단순 식으로, 하위 쿼리 또는 SQL 사용자 정의 함수를 포함하지 않는 경우입니다.
반품
결과 형식은 expr
의 결과 형식으로 정의됩니다.
둘 이상의 paramN
이 있는 경우 매개 변수 이름은 고유해야 합니다. 매개 변수의 형식은 호출 함수에 의해 설정됩니다.
expression
은 이러한 형식에 대해 유효해야 하고 결과 형식은 호출 함수의 정의된 예상과 일치해야 합니다.
예제
array_sort 함수 함수에는 두 개의 매개 변수가 있는 람다 함수가 사용됩니다.
매개 변수 형식은 정렬할 배열 요소의 형식입니다.
식의 결과는 -1의 경우 param1
<param2
을 의미하고, 0의 경우 param1
= param2
을, 그 외에는 1을 의미하는 INTEGER를 반환해야 합니다.
STRING의 ARRAY를 오른쪽에서 왼쪽 어휘 순서로 정렬하려면 다음 람다 함수를 사용할 수 있습니다.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
람다 함수는 임시로 정의되고 사용됩니다. 따라서 함수 정의는 다음과 같은 인수입니다.
> 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]