Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Tipo de
Se aplica a:
Databricks Runtime 15.3 y versiones posteriores
Representa los valores en una VARIANT con la estructura descrita por un conjunto de campos.
Consulte STRUCT para almacenar y procesar tipos estructurados descritos por una secuencia de campos.
Importante
El OBJECT no se puede almacenar en una columna de tabla.
Solo se expone al llamar a schema_of_variant o schema_of_variant_agg.
Para usar un tipo de OBJECT, debe convertirlo en un STRUCT o MAP.
Sintaxis
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName: identificador que designa el campo. Los nombres deben ser únicos. -
fieldType: cualquier tipo de datos.
Límites
El tipo admite cualquier número de campos mayor o igual que 0.
Literales
Los valores de OBJECT no se pueden crear fuera de un VARIANT.
Son el resultado de analizar una cadena JSON en un VARIANT mediante la función parse_json().
Notas
- Para extraer un
OBJECTpuede hacer lo siguiente:-
variant_getfunción mediante una expresión de ruta de acceso JSON para ir al tipo deOBJECT. -
El
:operador : (signo de dos puntos) para analizarOBJECTmediante una expresión de ruta de acceso JSON. -
La función
try_variant_getmediante una ruta de acceso JSON para navegar a un tipoOBJECTcon tolerancia a errores. -
La función
casto el operador::(signo de dos puntos) para convertir el tipoOBJECTen un STRUCT o MAP. -
try_castfunction o?::(operador de doble signo de interrogación) para convertir elOBJECTen un STRUCT o MAP.
-
Ejemplos
> 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"}