Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Tipo
Aplica-se a:
Databricks Runtime 15.3 e versões posteriores
Representa valores em um VARIANT com a estrutura descrita por uma sequência 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ó será exposto ao chamar schema_of_variant ou schema_of_variant_agg.
Para usar um tipo OBJECT, você deve convertê-lo em um STRUCT ou MAP.
Sintaxe
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName: um identificador que nomeia o campo. Os nomes devem ser únicos. -
fieldType: qualquer tipo de dados.
Limites
O tipo dá suporte a qualquer número de campos maior ou igual a 0.
Literais
Valores de OBJECT não podem ser criados fora de um VARIANT.
Eles são o resultado da análise de uma cadeia de caracteres JSON em um VARIANT usando a função parse_json().
Observações
- Para extrair um
OBJECT, você pode usar:-
variant_getfunção usando uma expressão de caminho JSON para navegar no tipoOBJECT. -
:operador (dois pontos) para analisar oOBJECTusando uma expressão de caminho JSON. -
try_variant_getfunção usando um caminho JSON para navegar em um tipoOBJECTcom tolerância a erros. -
castfunção ou operador::(sinal de dois pontos duplo) para converterOBJECTem STRUCT ou MAP. -
try_castfunção ou?::operador ternário para converterOBJECTem um STRUCT ou MAP.
-
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"}