使用 RAPIDS cuDF pandas 加速器模式处理 10 亿行数据
文章目录
前言
十亿行挑战赛 (One Billion Row Challenge) 是一个有趣的基准测试,旨在展示基本的数据处理操作。它最初是作为纯 Java 竞赛发起的,现已聚集了其他语言(包括 Python、Rust、Go、Swift 等)的开发者社区。对于许多有兴趣探索文本文件阅读细节、基于哈希的算法和 CPU 优化的软件工程师来说,这项挑战赛非常有用。截至 2024 年年中,One Billion Row Challenge GitHub 存储库已经吸引了超过 1.8K 个分叉,获得了超过 6K 颗星,并启发了数十篇博客文章和视频。
本文将展示如何使用 RAPIDS cuDF pandas 加速器模式完成处理十亿行数据的挑战。具体而言,我们将展示 cuDF pandas 加速器版本 24.08 中的两项新功能 —— 大字符串支持和带预取的托管内存 —— 如何借助 GPU 加速的数据处理工作流程提高大数据的性能。
pandas__16">一、使用 RAPIDS cuDF pandas 加速器模式进行数据处理
pandas 是一个基于 Python 构建的开源软件库,专门用于数据处理和分析。这是一个灵活的数据处理工具,支持完成一亿行挑战赛所需的操作,包括解析文本文件、按组聚合数值数据以及对表格进行排序。
RAPIDS cuDF 是一个 GPU DataFrame 库,可提供类似于 pandas 的 API,用于加载、过滤和操作数据。RAPIDS cuDF pandas 加速器模式通过统一的 CPU/GPU 用户体验,为 pandas 工作流带来加速计算,且无需更改代码。如需了解更多信息,请参阅 RAPIDS cuDF 将 pandas 的速度提升近 150 倍,无需更改代码。
以下 pandas 脚本足以完成一亿行挑战:
import pandas as pddf = pd.read_csv(“measurements.txt”, sep=';',header=