次の方法で共有


OBJECT

適用対象: Databricks Runtime 15.3 以降

フィールドのセットで記述された構造体を持つ VARIANT 内の値を表します。

一連のフィールドで記述された構造化型の保存と処理については「STRUCT」を参照してください。

重要

OBJECT はテーブル列に保存できません。 これが公開されるのは、schema_of_variant または schema_of_variant_agg の呼び出し時だけです。 OBJECT 型を使用するには、それを STRUCT または MAP にキャストする必要があります。

構文

OBJECT < [fieldName [:] fieldType [, ...] ] >
  • fieldName: フィールドに名前を付ける識別子。 名前は一意である必要があります。
  • fieldType:任意のデータ型。

制限

型は、0 以上の任意の数のフィールドをサポートします。

リテラル

OBJECT の値は、VARIANT の外部では作成できません。 これらは、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"}