json_tuple
テーブル値ジェネレーター関数
適用対象: Databricks SQL Databricks Runtime
複数の JSON オブジェクトをタプルとして返します。
構文
json_tuple(jsonStr, path1 [, ...] )
引数
jsonStr
: 整形式の JSON を含むSTRING
式。pathN
: JSON パス式を含むSTRING
リテラル。
返品
JSON オブジェクトで構成される 1 行。
オブジェクトが見つからない場合は、そのオブジェクトに対して NULL
が返されます。
適用対象: Databricks Runtime 12.1 以前:
json_tuple
は式のルートとして、または LATERAL VIEW に続く場合にのみ、SELECT
リストに配置できます。 関数をSELECT
リストに配置する場合、同じSELECT
リストに他のジェネレーター関数が存在してはいけません。存在する場合は、UNSUPPORTED_GENERATOR.MULTI_GENERATOR が発生します。適用対象: Databricks SQL Databricks Runtime 12.2 LTS 以上:
LATERAL VIEW 句または
SELECT
リストからの呼び出しは非推奨です。 代わりに、table_reference としてjson_tuple
を呼び出します。
例
適用対象: 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;