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

PySpark调用select报错AttributeError: 'NoneType'无select属性怎么解决

报错原因

show()是PySpark DataFrame的动作算子,作用是直接向控制台输出数据,无返回值(默认返回None)。你在编写筛选代码时,将.show(5)的执行结果直接赋值给了df变量,导致df实际存储的是None而非DataFrame对象,后续调用select方法时自然触发属性不存在的报错。
你之前执行筛选代码时看到的表格输出,是show(5)运行时直接打印的内容,并非赋值给df的有效返回值。

修正方案

步骤1:调整筛选代码的写法,拆分赋值和预览操作

import pyspark.sql.functions as f
# 先将筛选后的DataFrame赋值给df变量
df = emp_data.filter((f.col("POSTAL") == 2148) | (f.col("POSTAL") == 2125))
# 单独调用show方法预览数据
df.show(5)

步骤2:执行姓名拆分操作

df_new = df.select(f.split(f.col("NAME"), ','))
df_new.show(3)

可选优化:拆分姓名为独立列

如果需要把拆分后的姓、名拆为两个独立字段,可以使用如下写法:

df = df.withColumn("姓氏", f.split(f.col("NAME"), ',').getItem(0))\
       .withColumn("名字", f.split(f.col("NAME"), ',').getItem(1))
df.show(3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:06:05