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
相关产品推荐
相关产品推荐

