来自巨大CSV文件的随机样本



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

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

你建议如何做到这一点? 有没有一个哈斯克尔图书馆可以做到这一点? 是否可以在常量内存中执行此操作?

到目前为止,我在 http://hackage.haskell.org/package/random-extras-0.19/docs/Data-Random-Extras.html 中找到了sample函数,但它需要在列表中加载。

你建议如何做到这一点?

一个流库,用于在常量内存中流式传输数据,采样功能用于选择元素并为您提供结果。

有没有一个哈斯克尔图书馆可以做到这一点?

题外话,但请参阅评论。

是否可以在常量内存中执行此操作?

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

相关内容

  • 没有找到相关文章

最新更新