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

如何解决Databricks中绘制直方图时的'Column' object is not callable错误?

解决Spark DataFrame调用hist()报错:'Column' object is not callable

错误原因

你操作的df3是Spark DataFrame,df3['2015 median sales price']返回的是Spark的Column对象,而hist()是Pandas Series/DataFrame专属的绘图方法,因此触发'Column' object is not callable错误。

解决方案

以下是两种适配Databricks环境的解决方法:

方法1:转换为Pandas DataFrame后绘图

将Spark DataFrame转为Pandas DataFrame,即可使用matplotlib的hist方法:

import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df3 = (spark.read
       .format("csv")
       .option("header", "true")
       .option("inferSchema", "true")
       .load("/databricks-datasets/samples/population-vs-price/data_geo.csv")
      )

# 转换为Pandas DataFrame(小数据量适用)
pdf = df3.toPandas()
pdf['2015 median sales price'].hist()
plt.show()

如果数据集较大,建议先采样再转换,避免内存溢出:

# 采样10%数据转换(比例可按需调整)
pdf = df3.sample(fraction=0.1).toPandas()
pdf['2015 median sales price'].hist()
plt.show()

方法2:使用Databricks内置display函数(推荐)

Databricks提供原生可视化工具,无需转换格式,直接调用display即可生成直方图:

df3 = (spark.read
       .format("csv")
       .option("header", "true")
       .option("inferSchema", "true")
       .load("/databricks-datasets/samples/population-vs-price/data_geo.csv")
      )

# 传入目标列的DataFrame,在界面选择直方图类型
display(df3.select("2015 median sales price"))

执行后在Databricks界面的可视化面板中,选择「直方图」类型即可完成绘制,该方法更适合大数据场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:07:42