json_tuple
數據表值產生器函式
適用於: Databricks SQL Databricks Runtime
以 Tuple 形式傳回多個 JSON 物件。
語法
json_tuple(jsonStr, path1 [, ...] )
引數
jsonStr
STRING
:具有格式正確的 JSON 的運算式。pathN
STRING
:具有 JSON 路徑表示式的常值。
傳回
由 JSON 對象組成的單一數據列。
如果找不到任何物件, NULL
則會針對該物件傳回 。
適用於: Databricks Runtime 12.1 和更早版本:
json_tuple
只能放在SELECT
清單中做為表達式的根目錄,或遵循 橫向檢視。 將函式SELECT
放在清單中時,相同的清單或UNSUPPORTED_GENERATOR中不得有其他產生器函SELECT
式。會引發MULTI_GENERATOR。適用於: Databricks SQL Databricks Runtime 12.2 LTS 和更新版本:
來自 LATERAL VIEW 子句或清單的
SELECT
調用已被取代。 請改為叫json_tuple
用作為 table_reference。
範例
適用於: Databricks Runtime 12.1 和更早版本:
> SELECT json_tuple('{"a":1, "b":2}', 'a', 'b'), 'Spark SQL';
1 2 Spark SQL
> SELECT json_tuple('{"a":1, "b":2}', 'a', 'c'), 'Spark SQL';
1 NULL Spark SQL
> SELECT json_tuple('{"a":1, "b":2}', 'a', 'c'), json_tuple('{"c":1, "d":2}', 'c', 'd'), 'Spark SQL';
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
適用於: Databricks SQL Databricks Runtime 12.2 LTS 和更新版本:
> SELECT j.*, 'Spark SQL' FROM json_tuple('{"a":1, "b":2}', 'a', 'b') AS j;
1 2 Spark SQL
> SELECT j.*, 'Spark SQL' FROM json_tuple('{"a":1, "b":2}', 'a', 'c') AS j;
1 NULL Spark SQL
> SELECT j1.*, j2.*, 'Spark SQL'
FROM json_tuple('{"a":1, "b":2}', 'a', 'c') AS j1,
json_tuple('{"c":1, "d":2}', 'c', 'd') AS j2;