Snowflake空表上传JSON文件报错,该如何正确操作?
Snowflake 上传JSON文件报错的问题解决
错误原因
你选错了文件格式:Snowflake的JSON文件格式加载逻辑是解析文件内的JSON结构,将每个顶级JSON元素拆分为表的一行,同时要求表只能包含一个VARIANT/OBJECT/ARRAY类型的列。但你的需求是把整个JSON文件的完整内容作为单个值存入一行一列,这和JSON格式的设计逻辑完全不符,所以触发报错。
解决方法
直接更换为CSV文件格式即可实现需求,步骤如下:
- 确保目标表仅包含一列,列类型设置为
STRING或VARIANT(推荐VARIANT,方便后续对JSON内容进行解析操作)。 - 上传时选择CSV文件格式,配置两个关键参数:
- 指定字段分隔符为JSON内容中不存在的特殊字符(比如
|、^),防止Snowflake误将JSON内的逗号识别为字段分隔符拆分内容。 - 关闭标题行识别(如果你的JSON文件没有标题行)。
- 指定字段分隔符为JSON内容中不存在的特殊字符(比如
如果你的JSON文件本身就是单个顶级JSON对象(例如{"name":"test","data":[1,2,3]}),也可以继续用JSON格式,但需要确保表只有一个VARIANT列,且文件内仅存在这一个顶级对象——不过这种方法局限性大,不如CSV方法通用。
内容的提问来源于stack exchange,提问作者x89
相关产品推荐
相关产品推荐

