在scala(> 1GB)中读取和处理非常大的CSV文件的有效方法是什么?

时间:2016-07-23 17:57:54

标签: json xml scala csv

在Scala中你如何有效地(内存消耗+性能)读取非常大的csv文件?它是否足够快,可以逐行流式传输并在每次迭代时处理每一行?

我需要对CSV数据做些什么: - > 在我的应用程序中,CSV文件中的单行被视为单个记录,CSV文件的所有记录将转换为XML元素和JSON格式,并以xml和json格式保存到另一个文件中。

所以这里的问题是从csv读取文件时,最好以块的形式读取文件并将该块提供给另一个线程,该线程将该CSV记录转换为xml / json并将该xml / json写入文件?如果是的话怎么样?

CSV的数据可以是任何数据,对数据类型没有限制,可以是数字,大小数,字符串或日期。在将它保存到xml之前,有什么简单的方法来处理这些不同的数据类型吗或者我们不需要处理类型?

非常感谢

1 个答案:

答案 0 :(得分:0)

如果这不是一次性任务,请创建一个程序,将此1GB文件分解为小尺寸文件。然后提供这些新文件作为单独期货的输入。 每个未来都将读取一个文件并按文件内容的顺序解析。 File4在File3之后​​解析,File3在File2之后解析,File2在File1之后解析。 由于文件没有键值对或分层数据结构,所以我建议,只读为字符串。 希望这会有所帮助。