首页 > 解决方案 > 来自巨大 CSV 文件的随机样本

问题描述

假设我有一个无法加载到内存中的巨大 CSV 文件。

我想N从文件中随机抽样元素。

你如何建议这样做?是否有一个 Haskell 库可以做到这一点?是否有可能在不断的记忆中做到这一点?

到目前为止,我在http://hackage.haskell.org/package/random-extras-0.19/docs/Data-Random-Extras.htmlsample中找到了该功能,但需要将其加载到列表中。

标签: haskell

解决方案


你如何建议这样做?

一个流式库,用于将数据流式传输到恒定内存和采样函数以选择元素并为您提供结果。

是否有一个 Haskell 库可以做到这一点?

题外话,看评论。

是否有可能在不断的记忆中做到这一点?

是的,流式传输和采样是可能的。一个更临时的解决方案是在文件中选择 N 个随机偏移量并从那里解析 csv。它不会是统一的,但可能适用于现实世界的场景,同时也比 O(n) 更快。


推荐阅读