看example源码学spark系列(1)-LocalPi

在学习开源项目时,我习惯是先学会用,然后再理解其原理,进而深入到源码。所以这新开一个系列,分析spark example源码,并把其中例子一个一个拆分出来运行进行学习,下面开始吧。

第一节从最简单的求pi开始吧.


首先创建一个sbt文件,我命名为simple.sbt,代码为

name := "LocalPi"

version := "1.0"

scalaVersion := "2.10.3"

libraryDependencies += "org.apache.spark" %% "spark-core" % "0.9.1"

resolvers += "Akka Repository" at "http://repo.akka.io/releases/"

建立一个localPi.scala文件

import scala.math.random
import org.apache.spark._
import SparkContext._

object LocalPi {
  def main(args: Array[String]) {
    var count = 0
    for (i <- 1 to 100000) {
      val x = random * 2 - 1
      val y = random * 2 - 1
      if (x*x + y*y < 1) count += 1
    }
    println("Pi is roughly " + 4 * count / 100000.0)
  }
}

其文件存放目录为

$ find .
.
./simple.sbt
./src
./src/main
./src/main/scala
./src/main/scala/localPi.scala

运行:

$ sbt "project localpi" "run"
[info] Set current project to LocalPi (in build file:/home/jpan/Mywork/spark-example/exspark/LocalPi/)
[info] Set current project to LocalPi (in build file:/home/jpan/Mywork/spark-example/exspark/LocalPi/)
[info] Updating {file:/home/jpan/Mywork/spark-example/exspark/LocalPi/}localpi...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 1 Scala source to /home/jpan/Mywork/spark-example/exspark/LocalPi/target/scala-2.10/classes...
[info] Running LocalPi 
Pi is roughly 3.14592
[success] Total time: 8 s, completed May 9, 2014 4:00:59 PM

源码分析:

从源码中可以看到,这个例子很简单,不作详解了。虽然import了spark包,其实并没有用到,只是简单的在本地计算pi。

另外注意下运行命令,很有意思哦,这个可不是

$sbt package
$sbt run

我也是刚学,想学sbt命令,去官网啃文档吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值