다음을 통해 공유


schema_of_json_agg 집계 함수

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

그룹에 있는 모든 JSON 문자열의 결합된 스키마를 DDL 형식으로 반환합니다.

구문

schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]

이 함수는 절을 사용하여 창 함수로 호출할 수도 있습니다.

인수

  • jsonStr: .가 STRING 있는 리터럴입니다 JSON.
  • options: 키와 값이 STRING있는 선택적 MAP 리터럴입니다. 옵션에 대한 자세한 내용은 from_json 함수를 참조하세요.
  • cond: 집계에 사용되는 행을 필터링하는 선택적 BOOLEAN 식입니다.

반품

열 이름이 고유한 JSON 키 집합에서 파생되는 문자열의 n 필드가 있는 구조체 배열의 정의를 포함하는 STRING. 필드 값은 파생 형식의 SQL 형식을 보유합니다.

각 레코드의 스키마는 필드 이름으로 병합됩니다. 이름이 같은 두 필드의 형식이 레코드 간에 다른 경우 Azure Databricks는 가장 일반적인 형식사용합니다. 이러한 형식이 없으면 형식이 로 STRING파생됩니다. 예를 들어, INTDOUBLEDOUBLE, 동안 STRUCT<i INT>STRINGSTRING.

JSON 데이터의 열을 읽어 얻은 스키마는 다음에서 파생된 스키마와 동일합니다.

SELECT * FROM json.`/my/data`;

단일 문자열의 스키마를 파생하려면schema_of_json 함수를 사용합니다.

예제

> SELECT schema_of_json_agg(a) FROM VALUES('{"foo": "bar"}') AS data(a);
  STRUCT<foo: STRING>

> SELECT schema_of_json_agg(a) FROM VALUES('[1]') AS data(a);
  ARRAY<BIGINT>

> CREATE TEMPORARY VIEW data(a) AS VALUES
  ('{"foo": "bar",   "wing": {"ding": "dong"}}'),
  ('{"top": "level", "wing": {"stop": "go"}}')

> SELECT schema_of_json_agg(a) FROM data;
  STRUCT<foo: STRING,top: STRING,wing: STRUCT<ding: STRING, stop: STRING>>