- 博客(18)
- 收藏
- 关注
原创 spark1.2.0源码MLlib --- SVD
奇异值分解(SVD)是主成分分析(PCA)的一种实现,传统方法求PCA是首先计算协方差矩阵,再通过协方差矩阵求特征值与特征向量求出。当矩阵的维度很大时,求协方差矩阵将会呈现平方级的增长,因此可以通过SVD的方法,达到降维的效果。 先看一下spark中的使用案例,代码如下: import org.apache.spark.mllib.linalg.Matrix import org.apache
2015-01-28 20:46:09 2255 1
原创 spark1.2.0源码MLlib --- 决策树-03
本章重点关注树中各节点分裂过程中,如何将相应的数据进行汇总,以便之后计算节点不纯度及信息增益,最终确定分裂的顺序。 首先,从 DecisionTree.findBestSplits() 开始,这个方法代码很长,按照执行顺序来看,代码如下: val partitionAggregates : RDD[(Int, DTStatsAggregator)] = if (nodeIdCa
2015-01-27 21:19:10 1447
原创 spark1.2.0源码MLlib --- 决策树-02
本章重点关注分裂节点的划分。 具体执行的代码为:DecisionTree.findSplitsBins() : protected[tree] def findSplitsBins( input: RDD[LabeledPoint], metadata: DecisionTreeMetadata): (Array[Array[Split]], Array[A
2015-01-26 21:24:34 1100
原创 spark1.2.0源码MLlib --- 决策树-01
决策树可以分两类:分类树和回归树,分别用于分类模型和线性回归模型。 首先,看一下spark中的使用案例,代码如下: import org.apache.spark.mllib.tree.DecisionTree import org.apache.spark.mllib.util.MLUtils // Load and parse the data file. val data = MLUt
2015-01-26 19:50:54 1900
原创 spark1.2.0源码MLlib --- 朴素贝叶斯分类器
spark1.2.0中的朴素贝叶斯分类器可以处理多分类的问题,典型应用如:文本分类。 先看一个使用的范例,代码如下: import org.apache.spark.mllib.classification.NaiveBayes import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.regressi
2015-01-25 13:14:14 1822
原创 spark1.2.0源码MLlib-线性回归
当调用LinearRegressionWithSGD.train() 时,代码执行如下: def train( input: RDD[LabeledPoint], numIterations: Int, stepSize: Double, miniBatchFraction: Double, initialWeights: Vect
2015-01-24 17:04:40 1223
原创 spark1.2.0源码分析之spark streaming处理数据
在JobScheduler的start()方法中,有一句关键代码会被调用:jobGenerator.start(),这个就是生成job来进行数据的处理,代码如下: /** Start generation of jobs */ def start(): Unit = synchronized { if (eventActor != null) return // generato
2015-01-12 11:20:36 968
原创 spark1.2.0源码分析之spark streaming保存数据
本篇主要讲解一下: 当 SocketReceiver 接收到数据之后进行保存的整个流程。 先看一下 SocketReceiver 的 receive() 方法: /** Create a socket connection and receive data until receiver is stopped */ def receive() { var socket: Sock
2015-01-12 09:41:22 921
原创 spark1.2.0源码分析之spark streaming执行工作流程
根据官方提供的示例代码,查看一下spark streaming整个执行的流程: val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount") val ssc = new StreamingContext(conf, Seconds(1)) // Create a DStream that will
2015-01-11 15:11:51 939
原创 spark1.2.0源码分析之ShuffledRDD抓取数据
当经过shuffle写数据到本地磁盘后,需要从磁盘中将数据读取出来,这个是 ShuffledRDD 做的事情: override def compute(split: Partition, context: TaskContext): Iterator[(K, C)] = { val dep = dependencies.head.asInstanceOf[ShuffleDepend
2015-01-11 12:05:42 2327
原创 spark1.2.0源码分析之ShuffleMapTask
当提交任务集时,Spark会分成两种情况:ShuffleMapTask 和 ResultTask ,接下来分析一下 ShuffleMapTask 中主要做了哪些工作。 private[spark] class ShuffleMapTask( stageId: Int, taskBinary: Broadcast[Array[Byte]], partition: Parti
2015-01-10 13:50:59 1028
原创 spark1.2.0源码分析之ShuffledRDD的Stage划分
当调用reduceByKey()、groupByKey()等操作后,会伴随着ShuffledRDD的生成,具体源码如下: def reduceByKey(partitioner: Partitioner, func: (V, V) => V): RDD[(K, V)] = { combineByKey[V]((v: V) => v, func, func, partitioner)
2015-01-09 23:26:25 2047
原创 spark1.2.0源码分析之RDD的reduce操作
reduce操作在RDD中属于action操作,伴随着sc.runJob的调用,源码如下(基于spark 1.2.0版本): def reduce(f: (T, T) => T): T = { val cleanF = sc.clean(f) val reducePartition: Iterator[T] => Option[T] = iter => { if
2015-01-09 08:40:43 1413
转载 Hbase系统架构及数据结构
HBase中的表一般有这样的特点: 1 大:一个表可以有上亿行,上百万列 2 面向列:面向列(族)的存储和权限控制,列(族)独立检索。 3 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。 下面一幅图是Hbase在Hadoop Ecosystem中的位置。 二、逻辑视图 HBase以表的形式存储数据。表有行和列组成。列划分为
2014-12-08 23:33:57 599
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人