spark MLlib DataType ML中的数据类型
package ML.DataType; import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.mllib.linalg.*;
import org.apache.spark.mllib.linalg.distributed.*;
import org.apache.spark.mllib.regression.LabeledPoint;
import org.apache.spark.mllib.util.MLUtils; import java.util.Arrays; /**
* TODO
*
* @ClassName: DataType
* @author: DingH
* @since: 2019/4/3 10:06
*/
public class DataType {
public static void main(String[] args) { SparkConf conf = new SparkConf().setMaster("local").setAppName("Datatype");
JavaSparkContext javaSparkContext = new JavaSparkContext(conf); /**
* @Title: vectors.dense方法生成向量,sparse生成稀疏向量。第一个3是向量的大小,第二个列表是不为0的下表,第三个是对应的value.
*/
Vector dense = Vectors.dense(1.0, 0.0, 3.0);
Vector sparse = Vectors.sparse(3, new int[]{0, 2}, new double[]{1.0, 3.0}); /**
* @Title: 对向量进行标记,1.0为正,0.0为负
*/
LabeledPoint labeledPoint = new LabeledPoint(1.0, dense);
LabeledPoint labeledPoint1 = new LabeledPoint(0.0, sparse); /**
* @Title: libSVM文件: lable1 index1:value1 index2:value2
*/
JavaRDD<LabeledPoint> labeledPointJavaRDD = MLUtils.loadLibSVMFile(javaSparkContext.sc(), "/data...").toJavaRDD(); /**
* @Title: matricex.dense生成矩阵。3*2的矩阵 列式优先
* [1.0 2.0
* 3.0 4.0
* 5.0 6.0]
*/
Matrix dense1 = Matrices.dense(3, 2, new double[]{1.0, 3.0, 5.0, 2.0, 4.0, 6.0}); /**
* @Title: matricex.sparse生成稀疏矩阵。3*2的矩阵。第三个参数和第四个参数对应为不为0的元素。
* [9 0
* 0 6
* 0 8] 第三个参数: 1-0=1,3-1=2,每列不为0的元素分别是1个和2个。 第四个参数,从头开始遍历行,不为0的行。
*/
Matrix sparse1 = Matrices.sparse(3, 2, new int[]{0, 1, 3}, new int[]{0, 2, 1}, new double[]{9, 6, 8}); /**
* @Title: Rowmatrix
*/
JavaRDD<Vector> parallelize = javaSparkContext.parallelize(Arrays.asList(
Vectors.dense(1, 2, 3),
Vectors.dense(2, 3, 4),
Vectors.dense(3, 4, 5)
));
RowMatrix rowMatrix = new RowMatrix(parallelize.rdd());
long l = rowMatrix.numRows();
long l1 = rowMatrix.numCols();
QRDecomposition<RowMatrix, Matrix> rowMatrixMatrixQRDecomposition = rowMatrix.tallSkinnyQR(true); /**
* @Title: IndexedRowMatrix
*/
JavaRDD<IndexedRow> parallelize1 = javaSparkContext.parallelize(Arrays.asList(
new IndexedRow(1, dense),
new IndexedRow(2, dense),
new IndexedRow(3, dense)
));
IndexedRowMatrix indexedRowMatrix = new IndexedRowMatrix(parallelize1.rdd());
long l2 = indexedRowMatrix.numCols();
long l3 = indexedRowMatrix.numRows();
RowMatrix rowMatrix1 = indexedRowMatrix.toRowMatrix(); /**
* @Title: CoordinateMatrix
*/
JavaRDD<MatrixEntry> parallelize2 = javaSparkContext.parallelize(Arrays.asList(
new MatrixEntry(0, 1, 3),
new MatrixEntry(1, 3, 1),
new MatrixEntry(2, 1, 1)
));
CoordinateMatrix coordinateMatrix = new CoordinateMatrix(parallelize2.rdd());
long l4 = coordinateMatrix.numCols();
long l5 = coordinateMatrix.numRows();
IndexedRowMatrix indexedRowMatrix1 = coordinateMatrix.toIndexedRowMatrix(); /**
* @Title: BlocakMatrix 。 toBlockMatrix可以设置参数,规定row,col的大小,默认1024*1024
*/
BlockMatrix cache = indexedRowMatrix.toBlockMatrix().cache();
BlockMatrix cache1 = coordinateMatrix.toBlockMatrix().cache();
cache.validate();
BlockMatrix multiply = cache.transpose().multiply(cache);
}
}
spark MLlib DataType ML中的数据类型的更多相关文章
- spark mllib和ml类里面的区别
mllib是老的api,里面的模型都是基于RDD的,模型使用的时候api也是有变化的(model这里是naiveBayes), (1:在模型训练的时候是naiveBayes.run(data: RDD ...
- Spark MLlib数据类型
MLlib支持几种数据类型:本地向量(local vectors),和存储在一个简单机器中的矩阵(matrices),以及由一个或多个RDDs组成的分布式矩阵. 1,本地向量(Local Ve ...
- 在Java Web中使用Spark MLlib训练的模型
PMML是一种通用的配置文件,只要遵循标准的配置文件,就可以在Spark中训练机器学习模型,然后再web接口端去使用.目前应用最广的就是基于Jpmml来加载模型在javaweb中应用,这样就可以实现跨 ...
- Spark的MLlib和ML库的区别
机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.其目标是使实际的机器学习可扩展和容易.在高层次上,它提供了如下工具: ML算法:通用学习算法,如分类,回归,聚类和协同过滤 特 ...
- 基于spark Mllib(ML)聚类实战
写在前面的话:由于spark2.0.0之后ML中才包括LDA,GaussianMixture 模型,这里k-means用的是ML模块做测试,LDA,GaussianMixture 则用的是ML ...
- Spark Mllib里的Mllib基本数据类型(图文详解)
不多说,直接上干货! Spark Mllib基本数据类型,根据不同的作用和应用场景,分为四种不同的类型 1.Local vector : 本地向量集,主要向spark提供一组可进行操作的数据集合 2 ...
- 转载:Databricks孟祥瑞:ALS 在 Spark MLlib 中的实现
Databricks孟祥瑞:ALS 在 Spark MLlib 中的实现 发表于2015-05-07 21:58| 10255次阅读| 来源<程序员>电子刊| 9 条评论| 作者孟祥瑞 大 ...
- Spark MLlib中KMeans聚类算法的解析和应用
聚类算法是机器学习中的一种无监督学习算法,它在数据科学领域应用场景很广泛,比如基于用户购买行为.兴趣等来构建推荐系统. 核心思想可以理解为,在给定的数据集中(数据集中的每个元素有可被观察的n个属性), ...
- Apache Spark源码走读之23 -- Spark MLLib中拟牛顿法L-BFGS的源码实现
欢迎转载,转载请注明出处,徽沪一郎. 概要 本文就拟牛顿法L-BFGS的由来做一个简要的回顾,然后就其在spark mllib中的实现进行源码走读. 拟牛顿法 数学原理 代码实现 L-BFGS算法中使 ...
随机推荐
- Vivado如何使用命令行创建工程
前言 vivado中采用TCL脚本语言来作为其命令解释语言.除去可以普通的图形界面流程还可以使用tcl脚本创建工程并导入相关源文件. 流程 1.首先还是要打开vivado图形主界面. 2.在某路径 ...
- Java【第二篇】基本语法之--进制、运算符
进制 对于整数,有四种表示方式: 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头. 十进制:0-9 ,满 10 进 1. 八进制:0-7 ,满 8 进1. 以数字 0 开头表示. 十六进制 ...
- 读Zepto源码之内部方法
数组方法 定义 var emptyArray = [] concat = emptyArray.concat filter = emptyArray.filter slice = emptyArray ...
- openCV 3.0 Ubuntu下编译问题
1.有个ipptv啥的东西下布下来,去官网下载放到相应目录 2.把编译器降级到5版本才能编译
- VMWare的host-only/bridged/NAT连接图文介绍
1 VMware简介 VMWare虚拟机软件是一个“虚拟PC”软件,它使我们可以在一台机器上同时运行二个或更多Windows.Linux等系统. 如果我们需要使用多个系统的话,传统的方式有两种: .使 ...
- 2018-2019-2 《Java程序设计》第4周学习总结
20175319 2018-2019-2 <Java程序设计>第4周学习总结 教材学习内容总结 第四周学习了如下内容: 子类与父类 子类的继承性 子类与对象 重写方法 super关键字 f ...
- HP Z620 Windows 7 系统安装(含磁盘阵列)
由于HP Z620 做了Raid 5磁盘阵列,导致安装系统时,系统加载不了磁盘的驱动,无法将系统安装到硬盘上,正确的方法是:下载SATA驱动,在需要加载驱动的地方,利用另一个U盘,“浏览”解压好的驱动 ...
- AngularJS DI(依赖注入)实现推测
AngularJS DI(依赖注入) http://www.cnblogs.com/whitewolf/archive/2012/09/11/2680659.html 回到angularjs:在框架中 ...
- Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays
题目链接 题意:给你两个数x,yx,yx,y,让你构造一些长为yyy的数列,让这个数列的累乘为xxx,输出方案数. 思路:考虑对xxx进行质因数分解,设某个质因子PiP_iPi的的幂为kkk,则这个 ...
- spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一)
最近在学习的时候,发现微服务架构中,假如只有一个注册中心,那这个注册中心挂了可怎么办,这样的系统,既不安全,稳定性也不好,网上和书上找了一会,发现这个spring cloud早就想到了,并帮我们解决了 ...