다음을 통해 공유


schema_of_json_agg 집계 함수

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

그룹에 있는 모든 JSON 문자열을 합쳐서 DDL 형식의 schema로 반환합니다.

구문

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

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

인수

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

반품

column 이름이 JSON 키의 고유 set 파생될 wheren 문자열 필드가 있는 구조체 배열의 정의를 포함하는 STRING. 필드 values는 파생된 형식의 SQL 유형을 저장합니다.

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

다음에서 파생된 것과 같은 schema은 JSON 데이터의 column을 읽어서 얻은 것입니다.

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

단일 JSON 문자열의 schema 파생하려면 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>>