OBJECT 类型

适用于:勾选“是” Databricks Runtime 15.3 及更高版本

表示 VARIANT 中的值,其结构通过一系列字段来描述。

有关存储和处理由一系列字段描述的结构化类型的信息,请参阅 STRUCT

重要

OBJECT 不能存储在表列中。 它仅在调用 schema_of_variantschema_of_variant_agg 时才会公开。 若要使用 OBJECT 类型,必须将它强制转换为 STRUCTMAP

语法

OBJECT < [fieldName [:] fieldType [, ...] ] >
  • fieldName:给字段命名的标识符。 名称必须是唯一的。
  • fieldType:任何数据类型。

限制

类型支持任何大于或等于 0 的字段数。

文本

不能在 VARIANT 外部创建 OBJECT 的值。 它们是使用 parse_json() 函数将 JSON 字符串分析成 VARIANT 的结果。

备注

示例

> 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"}