任何更有效的方法来使列彼此不同?

时间:2017-05-18 03:40:39

标签: scala

txt文件(1.txt)和列分隔符是每行的空格

内容如下(事实上,有很多行...):

1 2 3 4
a b c d
1 1 1 1
1 1 2 2

预期:

1 2 3 4
a b c d

现在,我可以通过以下代码获得正确的输出:

val lines = io.Source.fromFile("/root/1.txt").getLines
lines.filterNot(_.split("\\s+").distinct.length<4).foreach(println)

但是,更有效的方法来实现它?

例如:多线程或akka实现它,thx。

1 个答案:

答案 0 :(得分:0)

如果要同时处理文件,一个选项是使用并行集合。因此,具有大量记录的文件将与多个线程并行处理。

注意:确保堆空间的大小相应,以支持非常大的文件。也可以使用第三方库提供的并行迭代器,如本answer

中所述
val lines = scala.io.Source.fromFile("/root/1.txt").getLines.toSeq.par
lines.filterNot(_.split("\\s+").distinct.length<4).foreach(println)