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

PySpark调用randomSplit报错:'NoneType'对象无该属性

问题解决:PySpark randomSplit报AttributeError(NoneType无此属性)

错误原因

你犯了一个PySpark常见用法错误:DataFrame.show()方法的返回值是None,你把这个返回值赋值给了final_df,导致final_df变成NoneType,调用randomSplit时自然报错。

show()是PySpark的**动作(Action)**方法,它仅负责将DataFrame内容打印到控制台,不会返回DataFrame对象本身。

修正代码

把赋值和打印操作分开,正确写法如下:

# 先赋值得到合法的DataFrame对象
final_df = output.select("features", "medv")
# 单独调用show()查看数据,不影响final_df的类型
final_df.show()
# 现在可正常调用randomSplit拆分数据集
train_df, test_df = final_df.randomSplit([0.7, 0.3])

额外注意

PySpark方法分为两类,需注意区分:

  • 转换(Transformation):比如select()、filter(),这类方法返回新的DataFrame,可链式调用或赋值给变量。
  • 动作(Action):比如show()、count()、collect(),这类方法触发计算并返回非DataFrame结果(如None、数值、列表),不能将它们的返回值当作DataFrame使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:29:51