码迷,mamicode.com
首页 > 其他好文 > 详细

spark习题

时间:2017-08-10 01:21:49      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:lis   reduce   style   10个   count   习题   并行   rand   list   

1、如何创建一个分区为2的RDD:

  创建一个RDD,分区为2,即对list进行并行化,并行度为2

scala> val rdd = sc.parallelize(List(1,2,3),2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24

  或者启动10个map Task进行处理,对10个分区都进行map处理

val slices = 10
val n = 100000 * slices
val count = sc.parallelize(1 to n, slices).map { i =>
val x = random * 2 - 1
val y = random * 2 - 1
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _)

 

2、将一个有两个分区的RDD收集起来

scala> rdd.collect
res3: Array[Int] = Array(1, 2, 3) 

3、得到这个rdd的分区数

scala> rdd.partitions.size
res4: Int = 2

4、想要看每个分区结果

  用glom,glom是将一个RDD的每一个分区都变成Array

scala> rdd.glom.collect
res5: Array[Array[Int]] = Array(Array(1), Array(2, 3))

 

spark习题

标签:lis   reduce   style   10个   count   习题   并行   rand   list   

原文地址:http://www.cnblogs.com/sorco/p/7335218.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!