【问题标题】:PySpark's "DataFrameLike" type vs pandas.DataFramePySpark 的“DataFrameLike”类型与 pandas.DataFrame
【发布时间】:2021-11-09 17:51:42
【问题描述】:

Spark 3.1 为 python 引入了类型提示(万岁!),但我很困惑为什么 toPandas 方法的返回类型是“DataFrameLike”而不是 pandas.DataFrame - 请参阅此处:https://github.com/apache/spark/blob/master/python/pyspark/sql/pandas/conversion.pyi

因为如果我尝试对调用 toPandas 的对象使用任何 pandas df 方法,mypy 会引发各种错误。例如

df = spark_df.toPandas()
df.to_csv(out_path, index=False)

导致错误信息

error: "DataFrameLike" has no attribute "to_csv" 

这是怎么回事?

【问题讨论】:

  • 同样的问题...不能用 DataFrameLike 对象进行任何 pandas 转换...

标签: python apache-spark pyspark apache-spark-sql type-hinting


【解决方案1】:

我相信这个问题已通过最近的提交(日期为 2021 年 12 月 22 日)得到解决:https://github.com/apache/spark/commit/a70006d9a7b578721d152d0f89d1a894de38c25d

现在,当您使用 .toPandas() 并打印出类型时,它实际上会为您提供 Pandas DataFrame。

要了解更多信息,由于您的链接已损坏,这里是 DataFrameLike 的源代码

因此,请确保将 pyspark 更新到最新版本。

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 1970-01-01
    • 2020-05-30
    • 2023-04-11
    • 1970-01-01
    • 2022-01-19
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多