Spark 3.1 introdujo sugerencias de tipo para python (¡hurra!) pero estoy desconcertado de por qué el tipo de retorno del método toPandas es "DataFrameLike" en lugar de pandas.DataFrame; consulte aquí: https://github.com/apache/spark/ blob/master/python/pyspark/sql/pandas/conversion.pyi
Debido a esto, mypy arroja todo tipo de errores si trato de usar cualquiera de los métodos pandas df en un objeto que es el resultado de llamar a Pandas. Por ejemplo
df = spark_df.toPandas() df.to_csv(out_path, index=False)da como resultado el mensaje de error
error: "DataFrameLike" has no attribute "to_csv"¿Que está pasando aqui?
Creo que este problema se solucionó con este compromiso reciente (fechado el 22 de diciembre de 2021): https://github.com/apache/spark/commit/a70006d9a7b578721d152d0f89d1a894de38c25d
En este momento, cuando usa .toPandas() e imprime el tipo, en realidad le dará Pandas DataFrame.
Para leer más al respecto, ya que su enlace está roto, aquí está el código fuente de DataFrameLike
Así que asegúrese de actualizar su pyspark a la última versión.