You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks运行Mosaic st_centroid2D示例报AttributeError求助

解决Mosaic 0.3.9中st_centroid2D不存在的AttributeError问题

问题原因

你使用的Mosaic 0.3.9版本尚未将st_centroid2D函数导出到mosaic顶层模块,而官网文档对应的是更高版本(0.4.0及以上)的API结构。

解决方案

方案1:升级Mosaic到兼容版本

在Databricks notebook中执行以下命令升级Mosaic,之后重启集群:

%pip install --upgrade mosaic==0.4.0

升级后即可直接使用官网提供的示例代码。

方案2:不升级版本,改用子模块或SQL调用

如果无法升级集群,可通过以下两种方式调用该函数:

方式A:使用mosaic.sql子模块调用

from mosaic import enable_mosaic
import mosaic.sql as mos_sql
enable_mosaic(spark, dbutils)

from pyspark.sql.functions import *

df = spark.createDataFrame([{'wkt': 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'}])
df.select(mos_sql.st_centroid2D('wkt')).show()

方式B:直接通过Spark SQL调用

from mosaic import enable_mosaic
enable_mosaic(spark, dbutils)

df = spark.createDataFrame([{'wkt': 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'}])
df.createOrReplaceTempView("polygons")
spark.sql("SELECT st_centroid2D(wkt) FROM polygons").show()

版本验证

可通过以下代码确认当前Mosaic版本:

import mosaic
print(mosaic.__version__)

内容的提问来源于stack exchange,提问作者S.Perera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:45:11