实现如下
package com.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* scala实现打印pi
原理:使用概率估计pi的值
*/
object ScalaPi {
def main(args:Array[String]):Unit={
val conf=new SparkConf().setAppName("Pi").setMaster("local[2]")
//获取context
val sc=new SparkContext(conf)
//创建分量
val slinces=100
val n=10000*slinces
//处理数据
val result=sc.parallelize(1 to n , slinces).map( x=> {
def random:Double=java.lang.Math.random()
val x=random*2-1 //取值范围
val y=random*2-1
//1/4的圆内
if((x*x+y*y)<1) 1 else 0
}).reduce(_+_)
//打印pi
println("pi is "+4.0*result/n)
sc.stop()
}
}