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

PySpark合并两个DataFrame生成新DataFrame遇NoneType问题求助

问题解决:PySpark DataFrame赋值后为NoneType的问题

问题出在你最后一行的.show()方法上——PySpark的show()是仅用于打印输出DataFrame内容的动作方法,它的返回值是None,而非DataFrame对象。你把show()的结果赋值给new_df,自然会让new_df变成NoneType,后续调用fillna时就会报错。

修正方法很简单:将.show()从赋值语句中剥离,先完成DataFrame的关联和选择操作并赋值给new_df,之后再单独调用show()查看结果。

修正后的代码:

mappedhh = spark.sql("SELECT * FROM Notebooks_Lakehouse.properties_coordinates")

temp_test = spark.sql("SELECT * FROM Notebooks_Lakehouse.vw_temp")

# 先完成DataFrame的关联与选择,赋值给new_df
new_df = temp_test.alias("a").join(mappedhh.alias("b"), ["Reference"], "left").select("a.Reference", "a.FullAddress", "b.AddressCoordinates")
# 单独调用show()查看内容
new_df.show()

# 现在可以正常调用fillna方法
new_df = new_df.fillna({"AddressCoordinates" : 0})
# 查看处理后的结果
new_df.show()

补充说明:PySpark中,show()、write()这类触发执行的动作(Action)方法,大多返回None;而join()、select()、fillna()这类转换(Transformation)方法,才会返回新的DataFrame对象。赋值时要注意区分,只把转换方法的结果赋值给变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:49:51