我有一个具有此架构的 AVRO 文件:
{
"type":"record",
"name":"row",
"fields":
[
{"name":"Column1","type":"int"},
{"name":"Column2","type":"string"}
]
}
现在我正在读取暂存文件。
SELECT t.$1
FROM @my_stage/my_file.avro
( FILE_FORMAT => 'MY_AVRO' )
t
;
我收到此错误:
AVRO 文件格式只能生成一列类型变体、对象或数组。使用 MATCH_BY_COLUMN_NAME 复制选项或通过转换复制将数据加载到单独的列中。
我尝试使用 INFER_SCHEMA 和 METADATA$FILE_ROW_NUMBER 等函数来找出 Snowflake 在此文件中看到的内容,但我总是遇到相同的错误。
是否可以从此类文件加载数据? 如果不可能的话,应该如何更改 AVRO 架构? Snowflake 对 AVRO 文件有何期望?
我在 Snowflake 文档中没有找到明确的说明。
我无法重现它。
源文件:https://learn.microsoft.com/en-us/azure/databricks/_static/examples/episodes.avro
CREATE FILE FORMAT MY_AVRO
TYPE=AVRO,
TRIM_SPACE=TRUE,
REPLACE_INVALID_CHARACTERS=TRUE;
SELECT t.$1
FROM @"TEST"."PUBLIC"."TEST"/episodes.avro(FILE_FORMAT => 'MY_AVRO') AS t;
推断模式功能也有效: