Jan*_*ulp 40 csv streaming scala large-files
如何使用Scala Stream读取大型CSV文件(> 1 Gb)?你有代码示例吗?或者您是否会使用不同的方式来读取大型CSV文件而不先将其加载到内存中?
Kev*_*ght 70
只需Source.fromFile(...).getLines按照您的说法使用即可.
这将返回一个Iterator,它已经是懒惰的(您将使用stream作为一个惰性集合,您希望先前检索的值被记忆,因此您可以再次读取它们)
如果你遇到了记忆问题,那么问题将出在你在 getLines 之后做的事情上.toList强制严格收集的任何操作都会导致问题.
soc*_*soc 13
我希望你不要指Scala collection.immutable.Stream与Stream.这不是你想要的.流是懒惰的,但记忆.
我不知道你打算做什么,但只是逐行阅读文件应该可以很好地工作,而不需要使用大量的内存.
getLines应该懒惰地评估并且不应该崩溃(只要你的文件没有超过2³²行,afaik).如果是,请询问#scala或提交错误票(或同时执行).
| 归档时间: |
|
| 查看次数: |
23861 次 |
| 最近记录: |