雪花云数据平台-GEOMETRY类型的Snowpark失败



我试图解析WKT并使用Snowpark Python API创建GEOMETRY类型,但失败:

session.sql("select to_geometry('POINT(1820.12 890.56)')").show()

类型错误:'>'在"NoneType"one_answers"int"的实例之间不支持

我测试了0.9.0和0.8.0版本,结果相同

上面的SQL在Snowflake的工作表中运行良好

看起来Snowpark Python在显示时无法处理几何体对象的输出。这是type_utils.py:中的失败代码

if column_type_name == "DECIMAL" or (
(column_type_name == "FIXED" or column_type_name == "NUMBER") and scale != 0
):
if precision != 0 or scale != 0:
if precision > DecimalType._MAX_PRECISION:
return DecimalType(
DecimalType._MAX_PRECISION,
scale + precision - DecimalType._MAX_SCALE,
)
else:
return DecimalType(precision, scale)
else:
return DecimalType(38, 18)

当无法确定精度时,代码将失败。因此,添加检查可以缓解问题:

if column_type_name == "DECIMAL" or (
(column_type_name == "FIXED" or column_type_name == "NUMBER") and scale != 0
):
if precision is None:
return DecimalType(precision, scale)
if precision != 0 or scale != 0:
if precision > DecimalType._MAX_PRECISION:
return DecimalType(
DecimalType._MAX_PRECISION,
scale + precision - DecimalType._MAX_SCALE,
)
else:
return DecimalType(precision, scale)
else:
return DecimalType(38, 18)

请向Snowflake提交支持票证,以便修复代码。

Snowpark v.1.5.1 中添加了对几何的支持

相关内容

  • 没有找到相关文章

最新更新