json_tuple
Função geradora com valor de tabela
Aplica-se a: SQL do Databricks Runtime do Databricks
Retorna vários objetos JSON como uma tupla.
Sintaxe
json_tuple(jsonStr, path1 [, ...] )
Argumentos
jsonStr
: uma expressãoSTRING
com um JSON bem formado.pathN
: um literalSTRING
com uma expressão de caminho JSON.
Devoluções
Uma única linha composta dos objetos JSON.
Se qualquer objeto não puder ser encontrado, NULL
será retornado para esse objeto.
Aplica-se a: Databricks Runtime 12.1 e versões anteriores:
json_tuple
só pode ser colocado na listaSELECT
como a raiz de uma expressão ou seguindo uma EXIBIÇÃO LATERAL. Ao colocar a função na listaSELECT
, não deve haver nenhuma outra função de gerador na mesma listaSELECT
ou um UNSUPPORTED_GENERATOR. MULTI_GENERATOR será gerado.Aplica-se a: SQL do Databricks Databricks Runtime 12.2 LTS e superior:
A invocação a partir da cláusula EXIBIÇÃO LATERAL ou da lista
SELECT
foi preterida. Em vez disso, invoquejson_tuple
como uma table_reference.
Exemplos
Aplica-se a: Databricks Runtime 12.1 e versões anteriores:
> 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
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e versões posteriores:
> 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;