다음을 통해 공유


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

반품

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

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

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

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

단일 JSON 문자열의 스키마를 파생하려면 함수를 사용합니다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>>