Udostępnij za pośrednictwem


json_tuple funkcja generatora wartości tabeli

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Zwraca wiele obiektów JSON jako krotkę.

Składnia

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

Argumenty

  • jsonStr: STRING wyrażenie z dobrze sformułowanym kodem JSON.
  • pathN STRING: literał z wyrażeniem ścieżki JSON.

Zwraca

Pojedynczy wiersz składający się z obiektów JSON.

Jeśli nie można odnaleźć żadnego obiektu, NULL zostanie zwrócony dla tego obiektu.

  • Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.1 i starsze:

    json_tuple można umieścić tylko na liście SELECT jako korzeń wyrażenia lub po LATERAL VIEW. Podczas umieszczania funkcji na liście SELECT nie może istnieć żadna inna funkcja generatora na tej samej liście SELECT albo zostanie zgłoszony błąd UNSUPPORTED_GENERATOR.MULTI_GENERATOR.

  • Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.2 LTS i nowsze:

    Wywołanie z klauzuli ,LATERAL VIEW lub albo listy SELECT jest przestarzałe. Zamiast tego należy wywołać json_tuple jako table_reference.

Przykłady

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.1 i starsze:

> 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

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.2 LTS i nowsze:

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