【问题标题】:Pyspark Dataframe not returning all rows while converting to pandas using toPandas or Pyarrow function in Pyspark在 Pyspark 中使用 toPandas 或 Pyarrow 函数转换为熊猫时,Pyspark Dataframe 未返回所有行
【发布时间】:2019-11-01 05:51:57
【问题描述】:

在尝试使用箭头函数将 pyspark 数据帧转换为 pandas 数据帧时,只有一半的行被转换。 Pyspark df 包含 170,000 行。

>> spark.conf.set("spark.sql.execution.arrow.enabled", "true")
>> result_pdf = train_set.select("*").toPandas()
>> result_pdf returns only 65000 rows.

我尝试使用以下命令安装和更新 pyarrow:

>> conda install -c conda-forge pyarrow
>> pip install pyarrow
>> pip install pyspark[sql]

然后运行

>> spark.conf.set("spark.sql.execution.arrow.enabled", "true")
>> result_pdf = train_set.select("*").toPandas()
>>spark.conf.set("spark.sql.execution.arrow.enabled", "true")
>> result_pdf = train_set.select("*").toPandas()

每次转换时我都会收到以下警告消息:

C:\Users\MUM1342.conda\envs\snakes\lib\site-packages\pyarrow__init__.py:152: UserWarning: pyarrow.open_stream 已弃用,请使用 pyarrow.ipc.open_stream warnings.warn("pyarrow.open_stream 是 已弃用,请使用“ C:\Users\MUM1342.conda\envs\snakes\lib\site-packages\pyspark\sql\dataframe.py:2138: UserWarning: toPandas 尝试了 Arrow 优化,因为 'spark.sql.execution.arrow.enabled' 设置为 true,但已达到 下面的错误,无法继续。注意 'spark.sql.execution.arrow.fallback.enabled' 没有效果 关于计算过程中的失败。

实际输出:

> train_set.count
> 170256
> result_pdf.shape
> 6500

预期输出:

> train_set.count
> 170256
> result_pdf.shape
> 170256

【问题讨论】:

    标签: pandas apache-spark pyspark apache-spark-sql pyarrow


    【解决方案1】:

    如果可行,请在下面尝试

    启用基于箭头的列式数据传输

    spark.conf.set("spark.sql.execution.arrow.enabled", "true")
    

    【讨论】:

      猜你喜欢
      • 2021-11-22
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      相关资源
      最近更新 更多