haskell - 来自巨大 CSV 文件的随机样本
问题描述
假设我有一个无法加载到内存中的巨大 CSV 文件。
我想N
从文件中随机抽样元素。
你如何建议这样做?是否有一个 Haskell 库可以做到这一点?是否有可能在不断的记忆中做到这一点?
到目前为止,我在http://hackage.haskell.org/package/random-extras-0.19/docs/Data-Random-Extras.htmlsample
中找到了该功能,但需要将其加载到列表中。
解决方案
你如何建议这样做?
一个流式库,用于将数据流式传输到恒定内存和采样函数以选择元素并为您提供结果。
是否有一个 Haskell 库可以做到这一点?
题外话,看评论。
是否有可能在不断的记忆中做到这一点?
是的,流式传输和采样是可能的。一个更临时的解决方案是在文件中选择 N 个随机偏移量并从那里解析 csv。它不会是统一的,但可能适用于现实世界的场景,同时也比 O(n) 更快。
推荐阅读
- python - CSS未链接到Flask webapp中的HTML
- android - 三星健康 SDK 合作伙伴应用程序计划注册
- node.js - 无法使用 nodejs/axios 上传大文件
- angular - 将 FileReader 结果保存到数组时出现问题
- excel - 计算值在 Excel 中出现的次数
- node.js - 我可以在nodejs中获取console.table的字符串值吗?
- python - 将新下载的文件重命名为分配给它的编号
- java - DateTime 格式需要按预期更改
- ios - Xcode中的多行查找和替换
- javascript - 检查是否收到有效的 unix 时间戳