Azure Databricks中Pandas转PySpark遇iteritems弃用警告的解决咨询
解决Databricks中Pandas转PySpark DataFrame时的iteritems弃用警告
这个警告来自PySpark内部代码,它调用了Pandas已弃用的iteritems()方法——你用的spark.createDataFrame(df_pd)是标准转换方式,问题不在你的代码里。下面给你几个不用升级Python的解决办法:
临时抑制警告:如果只是不想看到这个提示,可以用Python的
warnings模块精准过滤该警告,不影响其他提示:import warnings # 过滤指定的FutureWarning warnings.filterwarnings( "ignore", category=FutureWarning, message="iteritems is deprecated and will be removed in a future version. Use .items instead." ) # 正常执行转换 df_spk = spark.createDataFrame(df_pd)升级Databricks Runtime版本:这个问题是PySpark的内部代码缺陷,新版本的Databricks Runtime(对应更新的PySpark版本)已经把
iteritems()替换成了items()。你可以在Databricks工作区中把集群的Runtime版本换成较新的LTS版本(比如11.3 LTS及以上),不需要单独升级Python,因为Runtime自带适配的Python和PySpark环境。手动指定Schema转换(可选):如果不想升级Runtime,也可以手动定义PySpark Schema后再转换,虽然步骤稍繁琐,但能明确控制数据类型:
from pyspark.sql.types import StructType, StructField, StringType, IntegerType # 根据你的Pandas DataFrame列结构定义Schema custom_schema = StructType([ StructField("列名1", IntegerType(), nullable=True), StructField("列名2", StringType(), nullable=True) # 按实际列补充 ]) df_spk = spark.createDataFrame(df_pd, schema=custom_schema)
内容的提问来源于stack exchange,提问作者Tanjil
相关产品推荐
相关产品推荐

