所以我从这里学会了如何将值插入数组列:
INSERT INTO table
SELECT ARRAY("line1", "line2", "line3") as myArray
FROM source1;
从这里如何将值插入结构列:
INSERT INTO table
SELECT NAMED_STRUCT('houseno','123','streetname','GoldStreet', 'town','London', 'postcode','W1a9JF') AS address
FROM source2;
现在我试图以同样的方式在结构数组中插入值。它具有以下架构:
additionalattribute:array<struct<attribute_value:string,key:string,value:string>
我试图这样推断:
INSERT INTO table
ARRAY(NAMED_STRUCT('attribute_value','null','key','null','value','null')) as additionalattribute
FROM source2;
但它不起作用。有谁知道如何解决这个问题?
表名后面缺少 select 语句。演示
create table temp4
(
additionalattribute array<struct<attribute_value:string,key:string,value:string>>
);
INSERT INTO temp4 select
ARRAY(NAMED_STRUCT('attribute_value','null','key','null','value','null')) as additionalattribute
FROM (select '1' ) t;