次の方法で共有


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 が発生します。

  • 適用対象: check marked yes 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

適用対象: check marked yes 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;