1 pyarrow简介
pyarrow是用于Apache Arrow的Python库。这个库为Arrow c++库提供的功能提供了Python API,以及用于与panda、NumPy和Python生态系统中的其他软件进行箭头集成和互操作性的工具。Apache Arrow是一个用于内存分析的开发平台。它包含一组技术,使大数据系统能够快速处理和移动数据。
Arrow特点
Format: Apache Arrow为平面和层次数据定义了一种与语言无关的柱状内存格式,这种格式的组织用于在现代硬件(如cpu和gpu)上进行高效的分析操作。Arrow内存格式还支持零拷贝读取,用于不需要序列化开销的闪电般的数据访问。
Libraries: Arrow的库实现了这种格式,并为一系列用例提供了构建块,包括高性能分析。许多流行的项目使用箭头有效地发送柱状数据,或者作为分析引擎的基础。库可用于C、c++、c#、Go、Java、JavaScript、MATLAB、Python、R、Ruby和Rust。请参阅如何安装和启动。
Ecosystem:Apache Arrow是由开发人员社区创建并为其服务的软件。我们致力于开放、友好的沟通和协商一致的决策。我们的提交者来自不同的组织和背景,我们欢迎所有人与我们一起参与。
2 pyarrow安装
Pyarrow安装很简单,如果有网络的话,使用以下命令就行:
#pip install pyarrow
Pyarrow比较大,可能使用官方的源导致安装失败,我有两种解决办法:
方法一:更换数据源
可以使用国内的源,比如清华的源,安装命令如下:
#pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple pyarrow
方法二:离线安装
先到官网或者镜像源下载安装包
下载后使用以下命令安装:
#pip install pyarrow-2.0.0-cp38-cp38-win_amd64.whl
3 pyarrow使用
前面讲了pyarrow的简介和安装,接下来我们试试pyarrow到底有没有优势,我们知道,在做数据处理的时候,IO操作将占用大量的时间,提高IO操作效率,也就提升了整体效率,我们就拿大家熟悉的pandas来比较。
代码如下:
import time
from pyarrow import csv
def load_by_arrow(filePath):
# API :https://arrow.apache.org/docs/python/generated/pyarrow.csv.read_csv.html
table = csv.read_csv(filePath)
return table.to_pandas()
import pandas as pd
def load_by_pandas(filePath):
df = pd.read_csv(filePath)
return df
if __name__ == "__main__":
filePath = 'workdf.csv'
start = time.time()
pa_df = load_by_arrow(filePath)
end = time.time()
print(end-start)
start = time.time()
pd_df = load_by_pandas(filePath)
end = time.time()
print(end-start)
运行结果如下:
我们可以看到,pyarrow的读取时间是pandas的两倍还多,可想而知,如果处理大批量的数据,效果将更加明显。
欢迎访问我的网站:
BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
接收更多精彩文章及资源推送,请订阅我的微信公众号: