加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

我们可以在Scala中定义一组DSL操作,它们彼此并行执行,就像在Linu

发布时间:2020-12-16 09:59:21 所属栏目:安全 来源:网络整理
导读:原谅我英语不好,但我会尽力表达我的问题. 假设我想处理一个大文本,其操作是通过关键字过滤内容;把它们改成小写;然后将它们打印到标准输出上.众所周知,我们可以使用Linux BASH脚本中的管道执行此操作: cat article.txt | grep "I" | tr "I" "i" /dev/stdout
原谅我英语不好,但我会尽力表达我的问题.

假设我想处理一个大文本,其操作是通过关键字过滤内容;把它们改成小写;然后将它们打印到标准输出上.众所周知,我们可以使用Linux BASH脚本中的管道执行此操作:

cat article.txt | grep "I" | tr "I" "i" > /dev/stdout

其中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","love","peace")  
strList.filter( _ == "I").map(_.toLowerCase).foreach(println)

我的问题是我们如何使filter,map和foreach并行?

谢谢

解决方法

在2.9中,添加了并行集合.要并行化循环,您所要做的就是通过调用par成员函数来转换它.

您的代码如下所示:

val strList = List("I","peace")  // or read from a text file,e.g. article.txt 
strList.par.filter( _ == "I").map(_.toLowerCase).foreach(println)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读