Spark的Example---SparkPi
来源:互联网 发布:在线雅思水平测试软件 编辑:程序博客网 时间:2024/05/20 23:57
SparkPi.scal的源代码分析:
1.代码在examples/src/main/scala/org/apache/spark/examples目录下
2.代码(修改了部分源码)内容如下:
import scala.math.randomimport org.apache.spark._/** Computes an approximation to pi */object SparkPi { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Spark Pi").setMaster("local")//本地模式 println(args(0)) val spark = new SparkContext(conf) //println(args(0).toInt) val slices = if (args.length > 0) args.length else 2 val n = 100000 * slices val count = spark.parallelize(1 to n, slices).map { i => val x = random * 2 - 1 val y = random * 2 - 1 if (x*x + y*y < 1) 1 else 0 }.reduce(_ + _) println("Pi is roughly " + 4.0 * count / n) spark.stop() }}
核心的语句是这条:
val count = spark.parallelize(1 to n, slices).map { i => //map函数将一条记录转换为另一条记录(一对一关系)
val x = random * 2 - 1
val y = random * 2 - 1
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _)//reduce将RDD中元素两两传递给输入函数,同时产生一个新的值,新产生的值与RDD中下一个元素再被传递给输入函数直到最后只有一个值为止。reduce(_ + _) 也可以写成
reduce((x,y)=>x+y)
这个算法是概率算法(蒙特卡洛概率算法求圆周率),不是用公式奇数项求和算的。
3.其他example:
LocalPi.scala
在本地计算Pi值,实际上这是一个Scala程序,跟Spark没什么关系。
BroadcastTest.scala
测试Broadcast,Broadcast是共享变量的广播变量,只读属性。
CassandraTest.scala
测试Cassandra数据库,它是Facebook开发然后开源的,类似google的BigTable。
ExceptionHandlingTest.scala
测试抛出异常功能。
GroupByTest.scala
测试,根据键值分组。
HBaseTest.scala
测试HBase,HBase是Hadoop的数据库,类似Google的BigTable。
HdfsTest.scala
测试Hdfs文件系统,Hdfs是Hadoop的文件系统,类似Google的GFS。
LocalALS.scala
ALS是交替最小二乘法,通常用于推荐系统的算法。
LocalFileLR.scala
逻辑回归算法。
LocalKMeans.scala
K-Means聚类算法。
LocalLR.scala
逻辑回归算法。
LogQuery.scala
以MapReduce的方式,处理Apache log。
MultiBroadcastTest.scala
测试多个Broadcast共享变量。
....
其他的代码,多是本地代码的并行版本。
在本地计算Pi值,实际上这是一个Scala程序,跟Spark没什么关系。
BroadcastTest.scala
测试Broadcast,Broadcast是共享变量的广播变量,只读属性。
CassandraTest.scala
测试Cassandra数据库,它是Facebook开发然后开源的,类似google的BigTable。
ExceptionHandlingTest.scala
测试抛出异常功能。
GroupByTest.scala
测试,根据键值分组。
HBaseTest.scala
测试HBase,HBase是Hadoop的数据库,类似Google的BigTable。
HdfsTest.scala
测试Hdfs文件系统,Hdfs是Hadoop的文件系统,类似Google的GFS。
LocalALS.scala
ALS是交替最小二乘法,通常用于推荐系统的算法。
LocalFileLR.scala
逻辑回归算法。
LocalKMeans.scala
K-Means聚类算法。
LocalLR.scala
逻辑回归算法。
LogQuery.scala
以MapReduce的方式,处理Apache log。
MultiBroadcastTest.scala
测试多个Broadcast共享变量。
....
其他的代码,多是本地代码的并行版本。
0 0
- Spark的Example---SparkPi
- 看example源码学spark系列(2)-SparkPi
- Spark实例演示之SparkPi
- idea运行spark的wordcount与eclipse运行spark的wordcount示例,及本地运行sparkpi
- 用spark自带的示例SparkPi测试scala和spark集群
- Spark初体验(1)--SparkPi详解
- spark学习3之examples中的SparkPi
- 使用IntelliJ IDEA编写SparkPi直接在Spark中运行
- 各模式下运行spark自带实例SparkPi
- 从零开始学习Spark--第3章 spark的example
- Spark SQL Example
- Spark example WordCount
- spark function api and example
- Example Self Contained Spark Application
- [Spark]Spark Streaming 指南一 Example
- An example of Integrating Spark and Cassandra
- spark常用函数:transformation和action Example
- spark2.1源码分析2:从SparkPi分析一个job的执行
- [ 笔记 ] mysql创建高性能的索引
- 提取训练,测试集
- python sqlalchemy操作
- oracle数据库修改表中的字段 有数据和无数据
- cornerstone .a文件无法提交
- Spark的Example---SparkPi
- 日经春秋 20151228
- 1002:Fire Net
- Java动态代理二——CGLIB动态代理应用
- Hdu 2085
- Android XML 通用解析方法
- python 访问数据库 SQLAlchemy中的Query方法
- 在Git上打War包
- Android开发者网址导航