Scala大文件拆分

时间:2017-10-27 10:11:39

标签: scala split bigdata data-extraction

我有一个包含一些文本数据的大型标记文档(> 10Gb)。

<ID>some TXT I</ID>
<NAME>name 1</NAME>
<TYPE>type1</TYPE>
<DESCRIPTION>loooots of data, 
html and 

stuff

....
</DESCRIPTION>

<ID>some TXT II</ID>
<NAME>name 2</NAME>
<TYPE>type2</TYPE>
<DESCRIPTION>loooots of data, 
html and 

stuff

....
</DESCRIPTION>

<ID>some TXT 3</ID>
<NAME>name 3</NAME>
<TYPE>type3</TYPE>
<DESCRIPTION>loooots of data, 
html and 
other
stuff

....
</DESCRIPTION>
为了处理数据,我想将其分成块而不将所有数据读入内存。我有一个小文件的解决方案,但在怪物上使用mkString会破坏我的运行时并导致java内存不足;)

   val arrayOfPages: ParSeq[Page] = file.mkString.split("\\n<URL>")
  .toStream.par.map(_.trim).filter(!_.isEmpty)
  .map(e => "<URL>" + e).map{parsePage}

任何其他想法如何咬它? 我需要有一个迭代器或这些对象的流,我可以懒得处理它们。

0 个答案:

没有答案