spark RDD基础装换操作--filter操作

3.filter操作

将自然数1~100的RDD中所有的质数分配到新RDD中。
scala> val rddData = sc.parallelize(1 to 100)
rddData: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[7] at parallelize at <console>:39

scala> import scala.util.control.Breaks._
import scala.util.control.Breaks._

scala> val rddData2 = rddData.filter(n =>{
     |  var flag = if (n<2) false else true
     |  breakable{
     |   for(x <- 2 until n){
     |    if(n%x == 0){
     |      flag = false
     |      break
     |     }
     |    }
     |   }
     |   flag
     | })
rddData2: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[8] at filter at <console>:44

scala> rddData2.collect
res3: Array[Int] = Array(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97)

说明:
import scala.util.control.Breaks._:使用break需要显示导包
rddData.filter:如果参数为True,则该元素会被添加到新的RDD中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值