在下载好的spark文件中,有一些程序示例,学习它们是非常好的入门方式
分别有Scala,Python,java,R语言对应的例子
我们用Scala程序学习:
把整个example文件拷贝到我们项目的src下(对使用idea新建spark项目有疑问,或者运行时可能出问题的同学,可以参考 http://blog.youkuaiyun.com/m0_37681914/article/details/71531939)
1.求圆周率π
(原spark程序是利用面积求圆周率π的值,效果一样)
由3维球体体积公式得:
假设该球体内镶入体积为1的正方体中
随机获取该正方体中的NUM个点,设取得的是球中的点的个数为count, 随着NUM的数量增大, count与NUM的比例会逐渐接近球体体积与正方体体积比. 即:
球体体积 : 正方体体积 = count : NUM
可得:
π = 6 * count / NUM
val NUM = 100000000
val count = sc.parallelize(1 to NUM).filter { _ =>
val x = math.random
val y = math.random
val z = math.random
x*x + y*y + z*z < 1
}.count()
println(s"Pi is roughly ${6.0 * count / NUM}")