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

PySpark DataFrame列转列表报'Column' object is not callable如何解决

报错原因

你当前使用的datadf是PySpark SQL DataFrame,并非pandas DataFrame,二者API并不通用:直接通过datadf['Lat']取到的是PySpark的Column对象,没有tolist()、values等pandas Series的属性和方法,因此触发报错。

解决方法

有两种常用的实现方案:

方案1:先转pandas DataFrame再提取列表(写法更简洁,适合中小数据量)

# 先把PySpark DataFrame转成pandas DataFrame
pandas_df = datadf.toPandas()
# 分别提取经纬度列表
latlist = pandas_df['Lat'].tolist()
lonlist = pandas_df['Lon'].tolist()

方案2:通过RDD操作直接提取(适合不需要全量转pandas的场景)

latlist = datadf.select("Lat").rdd.flatMap(lambda x: x).collect()
lonlist = datadf.select("Lon").rdd.flatMap(lambda x: x).collect()
注意事项

两种方案都会把全量坐标数据拉取到当前Driver节点的内存中,如果你的DataFrame数据量极大,建议先做过滤、采样,确认只保留需要的点位数据后再执行转换操作,避免Driver内存溢出。
转换完成得到的经纬度列表即可直接用于在荷兰底图上添加点位。

内容的提问来源于stack exchange,提问作者user17515752

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:45:08