首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么达克比潘达读取同样的拼花文件要慢得多?

为什么达克比潘达读取同样的拼花文件要慢得多?
EN

Stack Overflow用户
提问于 2019-11-12 14:32:35
回答 1查看 1.8K关注 0票数 1

我正在用Dask和python测试地板文件上的阅读规范,我发现用熊猫阅读同样的文件要比Dask快得多。我想了解为什么会这样,如果有一个方法可以达到同样的效果,

所有相关软件包的版本

print(dask.__version__) print(pd.__version__) print(pyarrow.__version__) print(fastparquet.__version__)

2.6.0 0.25.2 0.15.1 0.3.2

代码语言:javascript
复制
import pandas as pd 
import numpy as np
import dask.dataframe as dd

col = [str(i) for i in list(np.arange(40))]
df = pd.DataFrame(np.random.randint(0,100,size=(5000000, 4 * 10)), columns=col)

df.to_parquet('large1.parquet', engine='pyarrow')
 # Wall time: 3.86 s
df.to_parquet('large2.parquet', engine='fastparquet')
 # Wall time: 27.1 s
df = dd.read_parquet('large2.parquet', engine='fastparquet').compute()
 # Wall time: 5.89 s
df = dd.read_parquet('large1.parquet', engine='pyarrow').compute()
 # Wall time: 4.84 s
df = pd.read_parquet('large1.parquet',engine='pyarrow')
 # Wall time: 503 ms 
df = pd.read_parquet('large2.parquet',engine='fastparquet')
 # Wall time: 4.12 s

在使用混合数据类型时,差异更大。

代码语言:javascript
复制
dtypes: category(7), datetime64[ns](2), float64(1), int64(1), object(9)
memory usage: 973.2+ MB
# df.shape == (8575745, 20)
代码语言:javascript
复制
df.to_parquet('large1.parquet', engine='pyarrow')
 # Wall time: 9.67 s

df.to_parquet('large2.parquet', engine='fastparquet')
 # Wall time: 33.3 s

# read with Dask
df = dd.read_parquet('large1.parquet', engine='pyarrow').compute()
 # Wall time: 34.5 s

df = dd.read_parquet('large2.parquet', engine='fastparquet').compute()
 # Wall time: 1min 22s

# read with pandas 
df = pd.read_parquet('large1.parquet',engine='pyarrow')
 # Wall time: 8.67 s

df = pd.read_parquet('large2.parquet',engine='fastparquet')
 # Wall time: 21.8 s
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-12 15:48:37

我的第一个猜测是,Pandas将Parquet数据集保存到一个行组中,这将不允许像Dask这样的系统并行化。这并不能解释为什么速度更慢,但也解释了为什么它不能更快。

要了解更多信息,我建议进行分析。您可能对本文件感兴趣:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58820760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档