Tipo OBJECT
Aplica-se a: Databricks Runtime 15.3 e posterior
Representa valores em uma VARIANT com a estrutura descrita por um conjunto de campos.
Consulte STRUCT para armazenar e processar tipos estruturados descritos por uma sequência de campos.
Importante
O OBJECT
não pode ser armazenado em uma coluna de tabela.
Ele só é exposto ao ligar para schema_of_variant ou schema_of_variant_agg.
Para usar um OBJECT
tipo, você deve convertê-lo em um STRUCT ou MAP.
Sintaxe
OBJECT < [fieldName [:] fieldType [, ...] ] >
fieldName
: Um identificador que nomeia o campo. Os nomes devem ser exclusivos.fieldType
: Qualquer tipo de dados.
Limites
O tipo suporta qualquer número de campos maior ou igual a 0.
Literais
Os valores de OBJECT
não podem ser criados fora de uma VARIANT.
Eles são o resultado da análise de uma cadeia de caracteres JSON em um VARIANT
usando a função parse_json( ).
Notas
- Para extrair um
OBJECT
você pode:- variant_get função usando uma expressão de caminho JSON para navegar até o
OBJECT
tipo. - : (sinal de dois pontos) para analisar o
OBJECT
usando uma expressão de caminho JSON. - try_variant_get função usando um caminho JSON para navegar em um
OBJECT
tipo com tolerância a erros. - função cast ou :: (sinal de dois pontos) operador para converter o
OBJECT
para um STRUCT ou MAP. - try_cast função ou ?:: (sinal de dois pontos triplos) operador para converter o
OBJECT
para um STRUCT ou MAP.
- variant_get função usando uma expressão de caminho JSON para navegar até o
Exemplos
> SELECT schema_of_variant(parse_json('{"key": 123, "data": 5.1 }'));
OBJECT<data: DECIMAL(2,1), key: BIGINT>
-- Casting from a an OBJECT to a STRUCT is by name, because OBJECT fields are not ordered.
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<data: DECIMAL(2,1), key: BIGINT>);
{"data":5.1,"key":123}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<key: BIGINT, data: DECIMAL(2,1)>);
{"key":123, "data":5.1}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS MAP<STRING, DECIMAL(20, 1)>);
{"data":"5.1","key":"123.0"}