爱国者*_*爱国者 5 parallel-processing scala
原谅我英语不好,但我会尽力表达我的问题.
假设我想处理一个大文本,其操作是通过关键字过滤内容; 把它们改成小写; 然后将它们打印到标准输出上.众所周知,我们可以使用Linux BASH脚本中的管道执行此操作:
cat article.txt | grep "I" | tr "I" "i" > /dev/stdout
Run Code Online (Sandbox Code Playgroud)
其中cat article.txt,grep "I",tr "I" "i" > /dev/stdout并行运行.
在Scala中,我们可能会这样做:
//or read from a text file , e.g. article.txt
val strList = List("I", "am", "a" , "student", ".", "I", "come", "from", "China", ".","I","love","peace")
strList.filter( _ == "I").map(_.toLowerCase).foreach(println)
Run Code Online (Sandbox Code Playgroud)
我的问题是,我们如何才能使filter,map和foreach水货?
谢谢
在2.9中,添加了并行集合。要并行化循环,您所要做的就是通过调用par成员函数来转换它。
你的代码看起来像这样:
val strList = List("I", "am", "a" , "student", ".", "I", "come", "from", "China", ".","I","love","peace") // or read from a text file , e.g. article.txt
strList.par.filter( _ == "I").map(_.toLowerCase).foreach(println)Run Code Online (Sandbox Code Playgroud)