【发布时间】: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