Overture Maps几何类型DuckDB查询报错:ST_GeomFromWKB参数不匹配
解决DuckDB中ST_GeomFromWKB参数类型不匹配的报错
问题分析
报错明确指出ST_GeomFromWKB(GEOMETRY)没有匹配的函数,该函数仅接受BLOB或WKB_BLOB类型的参数,但你传入的geometry字段本身已经是GEOMETRY类型,完全不需要再做格式转换。
解决方案
直接移除ST_GeomFromWKB调用,将geometry字段直接传入ST_AsText即可:
SELECT id, names.primary AS primary_name, ST_AsText(geometry) AS geometry_text FROM read_parquet('s3://overturemaps-us-west-2/release/2024-07-22.0/theme=base/type=water/*', filename=true, hive_partitioning=1) WHERE bbox.xmin >= -91.3994 AND bbox.xmax <= -89.3864 AND bbox.ymin >= 29.152 AND bbox.ymax <= 30.5161
补充说明
Overture Maps发布的Parquet文件中,geometry字段已经预存为DuckDB原生支持的GEOMETRY类型。ST_GeomFromWKB的作用是把二进制编码的WKB数据转换成GEOMETRY类型,而你的场景中输入已经是目标类型,所以多余的转换会触发类型不匹配错误。
内容的提问来源于stack exchange,提问作者Winston Li
相关产品推荐
相关产品推荐

