reduce함수(Databricks SQL)

사용자 지정 집계를 사용하여 배열의 요소를 집계합니다.

구문

reduce(expr, start, merge [, finish] )

인수

  • expr: ARRAY 식입니다.
  • start: 모든 형식의 초기 값입니다.
  • merge: 현재 요소를 집계하는 데 사용되는 람다 함수입니다.
  • finish: 집계를 마무리하는 데 사용되는 선택적 람다 함수입니다.

반환

결과 형식은 또는 이 finish 있는 경우 람다 함수의 결과 형식과 start 일치합니다.

배열의 초기 상태와 모든 요소에 식을 적용하고 이를 단일 상태로 줄입니다. 최종 상태는 함수를 적용하여 최종 결과로 finish 변환됩니다.

merge함수는 두 개의 매개 변수를 사용합니다. 첫 번째는 누적기, 두 번째는 집계할 요소입니다. 누적기 및 결과는 형식이어야 start 합니다. 선택적 finish 함수는 하나의 매개 변수를 받아 최종 결과를 반환합니다.

이 함수는 집계 함수(Databricks SQL)의동의어입니다.

> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x);
 6
> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
 60

> SELECT reduce(array(1, 2, 3, 4),
                named_struct('sum', 0, 'cnt', 0),
                (acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
                acc -> acc.sum / acc.cnt) AS avg
 2.5