schema_of_json_agg
聚合函數
適用於: Databricks SQL
Databricks Runtime 13.2 和更新版本
以 DDL 格式傳回群組中所有 JSON 字串的合併架構。
語法
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
。
例如,INT
和會變成 DOUBLE
,而 DOUBLE
變成 STRUCT<i INT>
STRING
STRING
。
從讀取數據行 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>>