다음을 통해 공유


Lambda 함수

적용 대상:예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

동작을 제어하기 위해 함수에 전달할 수 있는 매개 변수화된 식입니다.

예를 들어 array_sort 함수는 람다 함수를 인수로 받아 사용자 지정 정렬 순서를 정의합니다.

구문

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

Parameters

  • paramN: 부모 함수가 람다 함수에 대한 인수를 전달하는 데 사용하는 identifier.
  • expr: 하위 쿼리 또는 SQL 사용자 정의 함수를 포함하지 않는 단순 식 참조 paramN입니다.

반품

결과 형식은 expr의 결과 형식으로 정의됩니다.

둘 이상의 paramN이 있는 경우 매개 변수 이름은 고유해야 합니다. parameters 형식은 호출 함수에 의해 set으로 정의됩니다. expression은 이러한 형식에 대해 유효해야 하고 결과 형식은 호출 함수의 정의된 예상과 일치해야 합니다.

예제

array_sort 함수 함수에는 두 개의 parameters있는 람다 함수가 예상됩니다. 매개 변수 형식은 정렬할 배열 요소의 형식입니다. 이 표현은 INTEGER where -1일 경우 param1<param2를, 0일 경우 param1 = param2를, 기타 경우에는 1을 반환하도록 예상됩니다.

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]