选择 + 连接 + 导出的最佳实践是什么
作者: aEgoist创建于 2025年3月19日更新于 2025年3月19日
我是vaex的新手,我的场景是 **计算**: 计算并将结果保存到一系列大文件中 **准备**: 从这些大文件中的每个文件中选择一些列和行,合并选择内容,然后将整个数据框保存到一个大文件中 **加载**: 我其他进程需要非常快速地将其加载到内存中。 请注意,我的大文件足够大,比如占用整个内存的 1/3,一次加载所有文件会导致内存不足。我需要以相当小的比例(比如 5%)对每个文件进行采样(采样可以在计算过程中进行),并进行精确分配而不进行复制。我需要将它们连接成一个大文件,大小与我内存可容纳的最大值相等。此文件格式必须是某种内存映射,这样我就可以一次加载它们,读取必须非常快,而写入不能太慢,我的测试结果是保存: arrow>feather>>parquet>>>hdf,加载: arrow=parquet=hdf>>feather,这与官方文档不匹配。 我尝试了几种方法,但性能却大幅度不同。 例如,这种方法只能在一个核心上运行,因此速度极慢 `df = vaex.concat([vaex.open(f)[x_cols][i:j] for f in files]).export('cache.arrow')` 这种方法也相当慢。 `df = vaex.open_many(files)[x_cols].sample(frac=0.05).export('cache.arrow')` 所以,有人能否给我一些关于最佳实践的指导吗?
内容来源: vaexio/vaex