spark实例2--sparkPi

代码:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

import scala.math.random

object SparkPi {
  def main(args:Array[String]){
    val conf=new SparkConf().setAppName("SparkPi").setMaster("local")
    val sc=new SparkContext(conf)
    val num=500000;
    val numRdd=sc.parallelize(1 to num)
    val  count= numRdd.map{
      n=>{
        val x=random*2-1
        val y=random*2-1
        if(x*x+y*y<1)
          1
          else
            0
      }
    }.reduce(_+_)
    println(4.0*count/num)
  }

}

原理:

这个是利用概率求圆周率

边长为1的正方形里有一个内接圆,半径为1/2,任意取一个点(x,y)(0=<x<1,0=<y<1)落入圆内的概率

p=圆的面积/正方形的面积=(pi/4)

经过多次取随即点,此随机点到圆心(1/2,1/2)的距离小于1/2则在园内

sqrt((x-1/2)*(x-1/2)+(y-1/2)*(y-1/2))<1/2

化简后

(2x-1)*(2x-1)+(2y-1)*(2y-1)<1

如果次数多的话,随即点落入园内的次数(count)/取的总次数(num) =上面的p

所以

count/num=pi/4

pi=4*count/pi

时间: 2024-07-30 15:04:51

spark实例2--sparkPi的相关文章

Oozie调用Spark实例

oozie调用spark有三样是必须有的: workflow.xml(不可改名) , job.properties(可改名) , jar包(自备). 1.workflow.xml workflow.xml需要放到hdfs中 2.job.properties job.properties放在本地目录中即可. 3.运行: oozie job -config job.properties -run -oozie http://地址:11000/oozie

spark实例1--wordCount

IDE: scala版的 Eclipse scala version:2.10.4 spark:1.1.1 文件内容: hello  world hello word world word  hello 1.新建scala工程 2.引入spark的jar包 3.代码 import  org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.SparkContext._   objec

Ubuntu安装Hadoop与Spark

更新apt 用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了.按 ctrl+alt+t 打开终端窗口,执行如下命令: sudo apt-get update 若出现如下 "Hash校验和不符" 的提示,可通过更改软件源来解决.若没有该问题,则不需要更改.从软件源下载某些软件的过程中,可能由于网络方面的原因出现没法下载的情况,那么建议更改软件源.在学习Hadoop过程中,即使出现"Hash校验和不符"

Spark安装:CentOS7 + JDK7 + Hadoop2.6 + Scala2.10.4

本文搭建环境为:Mac + Parallel Desktop + CentOS7 + JDK7 + Hadoop2.6 + Scala2.10.4-------------------------------------------------- 一.CentOS安装 ■ 安装完成后记得保存快照. ■ 环境准备 CentOS7下载:http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso. ■ Mac Par

Mapreduce+Hive+Spark+Scala平台搭建

Mapreduce+Hive+Spark+Scala平台搭建 说明 平台搭建成功后,使用Java语言进行算法设计和应用的开发.文末有使用java设计的逻辑回归(Logistics Regression)做小数据集的二分类问题. 一.搭建准备 VMWare Workstation Ubuntu 14.04 Server.iso Xshell--远程连接主机终端 Server 版安装配置 新建三台虚拟机,安装时选择OpenSHH Server预安装环境 一台作为master 另两台作为slave,命

在Ubuntu下搭建Spark群集

在前一篇文章中,我们已经搭建好了Hadoop的群集,接下来,我们就是需要基于这个Hadoop群集,搭建Spark的群集.由于前面已经做了大量的工作,所以接下来搭建Spark会简单很多. 首先打开三个虚拟机,现在我们需要安装Scala,因为Spark是基于Scala开发的,所以需要安装Scala.在Ubuntu下安装Scala很简单,我们只需要运行 sudo apt-get install scala 就可以安装Scala了. 安装完成后运行scala -version可以看到安装的Scala的版

Spark入门实战

星星之火,可以燎原 Spark简介 Spark是一个开源的计算框架平台,使用该平台,数据分析程序可自动分发到集群中的不同机器中,以解决大规模数据快速计算的问题,同时它还向上提供一个优雅的编程范式,使得数据分析人员通过编写类似于本机的数据分析程序即可实现集群并行计算. Spark项目由多个紧密集成的组件组成.核心是Spark Core组件,它实现了Spark的基本功能,包括:任务调度.内存管理.错误恢复.与存储系统交互等模块,特别的,Spark Core还定义了弹性分布式数据集(RDD)的API,

SparkPi

import scala.math.random import org.apache.spark._ object SparkPi { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Spark Pi") val spark = new SparkContext(conf) val slices = if (args.length > 0) args(0).toInt else 2 va

十分钟了解分布式计算:Spark

Spark是一个通用的分布式内存计算框架,本文主要研讨Spark的核心数据结构RDD,及其在内存上的容错,内容基于论文 Zaharia, Matei, et al. "Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing" Proceedings of the 9th USENIX conference on Networked Systems Desig