Snowflake外部表JSON查询报错:无效标识符'ITEMS.VALUE'求助
Snowflake处理YouTube分类JSON数据错误修复
错误原因:LATERAL FLATTEN(items) 展开数组后,每个数组元素的引用是直接用 VALUE,而非 items.VALUE——items 是你要展开的数组字段,FLATTEN 会将其拆分为行,每行的元素由 VALUE 变量表示。
根据外部表的JSON结构,提供两种修正方案:
方案1:外部表顶层字段为items数组
如果外部表直接存储的是items数组类型字段,使用以下SQL:
CREATE OR REPLACE TABLE table_youtube_category AS SELECT VALUE:"snippet"."title"::STRING AS title, VALUE:"id"::INT AS id FROM e_table_youtube_category, LATERAL FLATTEN(INPUT => items);
方案2:外部表JSON包裹在顶层对象中
如果外部表的JSON数据是类似{"items": [{"id": "...", "snippet": {...}}, ...]}的结构,需要先指定顶层的items路径:
CREATE OR REPLACE TABLE table_youtube_category AS SELECT VALUE:"snippet"."title"::STRING AS title, VALUE:"id"::INT AS id FROM e_table_youtube_category, LATERAL FLATTEN(INPUT => $1:items);
补充说明:
- 使用
INPUT =>显式指定要展开的数组,能避免字段名歧义 - 提前确认
items字段确实是数组类型,否则FLATTEN无法正常执行展开操作
内容的提问来源于stack exchange,提问作者Russian_Lasagane
相关产品推荐
相关产品推荐

