inline
테이블 반환 생성기 함수
적용 대상: Databricks SQL Databricks 런타임
구조체 배열을 테이블로 분해합니다.
구문
inline(expr)
인수
expr
: 식입니다ARRAY<STRUCT>
.
반품
배열 expr
의 구조체 요소에 있는 필드로 구성된 행 집합입니다.
생성된 inline
열은 필드의 이름입니다.
행이 NULL
생성되지 않는 경우 expr
적용 대상: Databricks Runtime 12.1 이하:
inline
는 식의SELECT
루트 또는 LATERAL VIEW 다음에만 목록에 배치할 수 있습니다. 함수SELECT
를 목록에 배치할 때 동일한SELECT
목록이나 UNSUPPORTED_GENERATOR 다른 생성기 함수가 없어야 합니다. MULTI_GENERATOR 발생합니다.적용 대상: Databricks SQL Databricks Runtime 12.2 LTS 이상:
LATERAL VIEW 절 또는 목록의
SELECT
호출은 더 이상 사용되지 않습니다. 대신 table_reference 호출inline
합니다.
예제
적용 대상: Databricks Runtime 12.1 이하:
> SELECT inline(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
1 a Spark SQL
2 b Spark SQL
> SELECT inline(array(struct(1, 'a'), struct(1, 'b'))),
inline(array(struct('c', 1.0), struct('d', 2.0))),
'Spark SQL';
1 a Spark SQL
2 b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
적용 대상: Databricks SQL Databricks Runtime 12.2 LTS 이상:
> SELECT i.*, 'Spark SQL'
FROM inline(array(struct(1, 'a'), struct(2, 'b'))) AS i;
1 a Spark SQL
2 b Spark SQL
> SELECT i1.*, i2.*, 'Spark SQL'
FROM inline(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
inline(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
1 a c 1.0 Spark SQL
1 b c 1.0 Spark SQL
1 a d 2.0 Spark SQL
1 b d 2.0 Spark SQL