Pandas升级至2.0后用spark.createDataFrame报错:DataFrame无iteritems属性
解决pandas 2.0转PySpark DataFrame时的
iteritems属性错误 问题原因
pandas 2.0版本移除了DataFrame.iteritems()方法,而你当前使用的PySpark版本(低于3.3.0)内部仍依赖这个旧方法处理pandas DataFrame,导致触发报错:AttributeError: 'DataFrame' object has no attribute 'iteritems'。
解决方案
- 升级PySpark到3.3.0及以上:PySpark 3.3.0起已适配pandas 2.0,内部将
iteritems()替换为兼容的items()方法,升级后直接运行原转换代码即可正常工作。 - 临时兼容补丁:如果暂时无法升级PySpark,可在转换前给pandas DataFrame手动添加兼容方法:
# 为pandas_df添加兼容的iteritems方法 pandas_df.iteritems = pandas_df.items # 执行转换 df = spark.createDataFrame(pandas_df) - 降级pandas版本:将pandas降级回1.x系列(例如1.5.3),恢复与旧PySpark版本的兼容性,执行命令:
pip install pandas==1.5.3。
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

