Condividi tramite


json_tuple funzione generatore di valori di tabella

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Restituisce oggetti JSON multipli come una tupla.

Sintassi

json_tuple(jsonStr, path1 [, ...] )

Argomenti

  • jsonStr: un'espressione STRING con JSON ben formato.
  • pathN: valore STRING letterale con un'espressione di percorso JSON.

Valori restituiti

Una singola riga composta dagli oggetti JSON.

Se non è possibile trovare un oggetto, NULL viene restituito per tale oggetto.

  • Si applica a:segno di spunta sì Databricks Runtime 12.1 e versioni precedenti:

    json_tuple può essere posizionato solo come radice di un'espressione nell'elenco SELECT o dopo un LATERAL VIEW. Quando si inserisce la funzione nell'elenco di SELECT, non deve essere presente alcuna altra funzione generatrice nello stesso elenco di SELECT, altrimenti viene generato l'errore UNSUPPORTED_GENERATOR.MULTI_GENERATOR.

  • Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive:

    L'invocazione dalla clausola LATERAL VIEW o dall'elenco SELECT è deprecata. Richiamare json_tuple invece come table_reference.

Esempi

Si applica a:segno di spunta sì Databricks Runtime 12.1 e versioni precedenti:

> 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

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive:

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