我正在尝试将 STRING 类型列插入到 STRUCT TYPE 列的 ARRAY 中,但遇到错误。您能否帮助提供正确的插入方向。
在 databricks 笔记本中,我有一个原始表 ( raw_lms.rawTable
),其中所有列都是字符串类型。这需要插入到tl_lms.transformedTable
列是结构类型数组的转换表 () 中。
CREATE TABLE raw_lms.rawTable
( PrimaryOwners STRING
,Owners STRING
)
USING DELTA LOCATION 'xxxx/rawTable'
CREATE TABLE tl_lms.transformedTable
( PrimaryOwners array<struct<Id:STRING>>
,Owners array<struct<Id:STRING>>
)
USING DELTA LOCATION 'xxxx/transformedTable'
原始表填充了以下值:例如。
INSERT INTO TABLE raw_lms.rawTable
VALUES
("[{'Id': '1393fe1b-bba2-4343-dff0-08d9dea59a03'}, {'Id': 'cf2e6549-5d07-458c-9d30-08d9dd5885cf'}]",
"[]"
)
我尝试插入转换表并得到以下错误:
INSERT INTO tl_lms.transformedTable
SELECT PrimaryOwners,
Owners
FROM raw_lms.rawTable
SQL 语句中的错误:AnalysisException: cannot resolve 'spark_catalog.raw_lms.rawTable.
PrimaryOwners
' 由于数据类型不匹配:无法将字符串转换为数组<struct<Id:string>>;
我不想爆炸数据。我只需要简单地为不同列数据类型之间的行插入rawTable
行transformedTable
。
感谢您的时间和帮助。