怎样做网站权重,个人自助网站,ui设计培训班学费,末年人免费观看网站文章目录
Spark Pi介绍 Spark Pi介绍
Spark Pi是Apache Spark官方提供的一个示例程序#xff0c;该案例使用 Spark 进行分布式计算#xff0c;通过蒙特卡罗方法估算圆周率#xff08;π#xff09;的值#xff0c;其估算π原理如下#xff1a; 上图中#xff0c;正方形…
文章目录
Spark Pi介绍 Spark Pi介绍
Spark Pi是Apache Spark官方提供的一个示例程序该案例使用 Spark 进行分布式计算通过蒙特卡罗方法估算圆周率π的值其估算π原理如下 上图中正方形边长为2圆的半径为1那么正方形面积为4圆的面积为π。现在向正方形内随机“打点”即随机生成x,y坐标范围不超过正方向范围最终记录在圆内打点的个数与正方形内打点的个数两者比例为4/π当“打点”个数非常大时可以大约算出π的大小。
Spark Pi源码如下Spark源码examples模块中org.apache.spark.examples.SparkPi
object SparkPi {def main(args: Array[String]): Unit {val spark SparkSession.builder.appName(Spark Pi).getOrCreate()val slices if (args.length 0) args(0).toInt else 2//如果slices为100那么n为一千万val n math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow//随机生成n-1个点然后计算落在圆内的点的个数val count spark.sparkContext.parallelize(1 until n, slices).map { i //random返回的是0到1之间的随机数,x,y的取值范围是-1到1val x random * 2 - 1val y random * 2 - 1if (x*x y*y 1) 1 else 0}.reduce(_ _)//计算pi-圆的面积/正方形的面积count/n即:pi 4*count/(n-1)println(sPi is roughly ${4.0 * count / (n - 1)})spark.stop()}
}以上代码注意如下几点
SparkSession为SparkSQL中的对象可以通过SparkSession对象获取SparkContext对象。slices参数是用户在运行SparkPi 任务传入的参数该参数用于在并行化集合为RDD过程中指定RDD的分区个数即并行度个数。 博客主页https://lansonli.blog.csdn.net欢迎点赞 收藏 ⭐留言 如有错误敬请指正本文由 Lansonli 原创首发于 CSDN博客停下休息的时候不要忘了别人还在奔跑希望大家抓紧时间学习全力奔赴更美好的生活✨