共用方式為


schema_of_json_agg 聚合函數

適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 13.2 和更新版本

傳回群組中所有 JSON 字串的 schema 合併結果,以 DDL 格式呈現。

語法

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

此函式也可以透過使用 OVER 子句,作為 window 函式 進行叫用。

引數

  • jsonStr:具有 的 STRING 常值 JSON
  • options:一個可選的 MAP 文字,其中鍵和 values 是 STRING。 如需選項的詳細資訊,請參閱 from_json函式
  • cond:選擇性 BOOLEAN 表達式,篩選用於匯總的數據列。

傳回

保存結構陣列 n 欄位 wherecolumn 名稱的字串數位定義 STRING 衍生自 JSON 索引鍵的不同 set。 欄位 values 保存衍生格式的 SQL 類型。

每個記錄的 schema 會依欄位名稱合併在一起。 當兩個具有相同名稱的字段在記錄之間有不同的類型時,Azure Databricks 會使用 最不常見的類型。 當不存在這類類型時,類型會衍生為 STRING。 例如,INT和會變成 DOUBLE,而 DOUBLE 變成 STRUCT<i INT>STRINGSTRING

從讀取 JSON 數據 column 取得的 schema,與衍生自下列數據的 schema 相同。

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>>