SparkMLlib---Vectors、Matrix

介绍

  关于矩阵是我们Spark机器学习里面最重要的一部分知识之一了,今天就介绍下矩阵的使用与实战代码

  矩阵首先分为密集矩阵和稀疏矩阵,这个参考我之前一篇博客里面写的,还是介绍的比较详细的,不清楚的也可以去看看Spark源码里面对他们两个的定义,我主要是讲讲运用的部分,这个请直接看下面代码部分就行;

  然后就是本地矩阵,这个适合单机部署,很方便,运用部分也请看实战部分;

  最后就是我们最重要的分布式矩阵,代码里重点实战的是带索引的行矩阵和坐标矩阵;

分布式矩阵的使用

一般来说,采用分布式矩阵进行存储的情况数据量都是非常大的,其处理速度和效率与其存储格式息息相关。MLlib提供了四种分布式矩阵存储形式,均由支持长整型的行列数和双精度浮点型的数据内容构成。这四种矩阵分别为:行矩阵、带有行索引的行矩阵、坐标矩阵和块矩阵,这次代码我只介绍前三种,块矩阵应用较少,这里我就不多做介绍。

代码实战部分

package vector

import org.apache.log4j.{Level, Logger}
import org.apache.spark.mllib.linalg.distributed._
import org.apache.spark.mllib.linalg.{Matrices, Vectors, Vector}
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.{SparkContext, SparkConf}

/**
  * Created by 汪本成 on 2016/8/2.
  */
object MLlibUtils {

  //屏蔽不必要的日志显示在终端上
  Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
  Logger.getLogger("org.apache.eclipse.jetty.server").setLevel(Level.OFF)

  //程序入口
  val conf = new SparkConf().setAppName("MLlibUtils").setMaster("local[1]")
  val sc = new SparkContext(conf)

  val LIBSVM_PATH = "G://a.txt"
  val MATRIX_PATH = "G://b.txt"

  val array_Int = Array(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)

  def main(args: Array[String]) {

    use_Vector()
    //use_LoadLibSVMFile(LIBSVM_PATH)
    use_Matrix(2, 3, array_Int)
    use_RowMatrix(MATRIX_PATH)
    use_InDexRowMatrix(MATRIX_PATH)
    use_CoordinateRowMatrix(MATRIX_PATH)

  }


  /**
    * Function Feature:建立向量、标签的具体使用
    *
    * dense方法可以理解为MLlib专用的一种集合形式,与Arra
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值