You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

computeSVD()函数中使用的Mapper和Reducer是什么?

computeSVD()函数Spark MLlib中的一个函数,用于计算奇异值分解(SVD)。在此函数中,使用了两个Mapper和两个Reducer。其中第一个Mapper将原始数据转换为IndexedRowMatrix格式,第一个Reducer将IndexedRowMatrix拆分为子矩阵,第二个Mapper不做任何转换,最终的Reducer计算奇异值分解并返回结果。

具体代码如下:

//将原始数据转换为IndexedRowMatrix格式 JavaRDD<Vector> rows = sc.parallelize(data); JavaRDD<IndexedRow> indexedRows = rows.zipWithIndex().map( new Function<Tuple2<Vector, Long>, IndexedRow>() { public IndexedRow call(Tuple2<Vector, Long> t) { return new IndexedRow(t._2(), t._1()); } } ); IndexedRowMatrix matrix = new IndexedRowMatrix(indexedRows.rdd());

//拆分子矩阵 int rank = 2; int k = 5; SingularValueDecomposition<RowMatrix, Matrix> svd = matrix.toRowMatrix().computeSVD(rank, true, 1.0E-9d); Matrix U = svd.U(); Vector s = Vectors.dense(Arrays.copyOfRange(svd.s().toArray(), 0, rank)); Matrix V = svd.V(); Matrix Vsub = V.transpose().multiply(new DenseMatrix(k, rank, new double[rank*k]));

//计算奇异值分解并返回结果 JavaRDD<Vector> projected = matrix.rows().map(new Function<IndexedRow, Vector>() { public Vector call(IndexedRow row) { Vector result = new DenseVector(Vsub.numCols()); Vsub.multiply(row.vector(), result); return result; } });

return new RowMatrix(projected.rdd()).multiply( new DenseMatrix(rank, rank, Vsub.transpose().toArray()) ).multiply(new DenseMatrix(rank, s.size(), Matrices.diag(s.toArray()).toArray())).multiply( new DenseMatrix(k, rank, U.transpose().toArray()) );

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

万字长文,Spark 架构原理和 RDD 算子详解一网打进! | 社区征文

默认值就是程序所分配到的CPU Core的数目。(2)一个计算每个分区的函数。Spark中RDD的计算是以分片为单位的,每个RDD都会实现compute函数以达到这个目的。compute函数会对迭代器进行复合,不需要保存每次计算的结果... 也就是说上图中的stage1和stage2相当于mapreduce中的Mapper,而ResultTask所代表的stage3就相当于mapreduce中的reducer。在之前动手操作了一个wordcount程序,因此可知,Hadoop中MapReduce操作中的Mapper和Reducer在...

字节跳动 Spark Shuffle 大规模云原生化演进实践

Shuffle 是用户作业中会经常触发的功能,各种 ReduceByKey、groupByKey、Join、sortByKey 和 Repartition 的操作都会使用到 Shuffle。所以在大规模的 Spark 集群内,Spark Shuffle 经常会成为性能及稳定性的瓶颈;Shu... 在社区版 ESS 模式下默认使用的 Shuffle 模式的基本原理中,刚才提到 Shuffle 的计算会把数据进行重新分区,这里就是把 Map 的数据重新组合到所有的 Reducers 上。如果有 M 个 Mappers 和 R 个 Reducers,就会把 M Ma...

Hive SQL 底层执行过程 | 社区征文

**步骤5**:编译器生成的计划是分阶段的DAG,每个阶段要么是 map/reduce 作业,要么是一个元数据或者HDFS上的操作。将生成的计划发给 DRIVER。如果是 map/reduce 作业,该计划包括 map operator trees 和一个 reduce operator tree,执行引擎将会把这些作业发送给 MapReduce :**步骤6、6.1、6.2和6.3**:执行引擎将这些阶段提交给适当的组件。在每个 task(mapper/reducer) ,从HDFS文件中读取与表或中间输出相关联的数据,并通过相...

干货|火山引擎A/B测试平台如何“嵌入”技术研发流程

也都会用到这样的能力。最后是大消费行业,比如包括家电、客户、汽车行业等等。 接下来,将会和大家探讨研发流程中要怎么使用数据驱动。 **开发新功能的正确姿势是什么?**-------------------... 优化前需要知道mapper数、reducer数、excutor数等参数怎么设置,还要面料executor堆内内存不够、driver堆外内存不够、序列化结果过大等让人头大的错误。 其次,SQL运维优化会花费大量的人力,随着数据量的上...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

computeSVD()函数中使用的Mapper和Reducer是什么? -优选内容

万字长文,Spark 架构原理和 RDD 算子详解一网打进! | 社区征文
默认值就是程序所分配到的CPU Core的数目。(2)一个计算每个分区的函数。Spark中RDD的计算是以分片为单位的,每个RDD都会实现compute函数以达到这个目的。compute函数会对迭代器进行复合,不需要保存每次计算的结果... 也就是说上图中的stage1和stage2相当于mapreduce中的Mapper,而ResultTask所代表的stage3就相当于mapreduce中的reducer。在之前动手操作了一个wordcount程序,因此可知,Hadoop中MapReduce操作中的Mapper和Reducer在...
字节跳动 Spark Shuffle 大规模云原生化演进实践
Shuffle 是用户作业中会经常触发的功能,各种 ReduceByKey、groupByKey、Join、sortByKey 和 Repartition 的操作都会使用到 Shuffle。所以在大规模的 Spark 集群内,Spark Shuffle 经常会成为性能及稳定性的瓶颈;Shu... 在社区版 ESS 模式下默认使用的 Shuffle 模式的基本原理中,刚才提到 Shuffle 的计算会把数据进行重新分区,这里就是把 Map 的数据重新组合到所有的 Reducers 上。如果有 M 个 Mappers 和 R 个 Reducers,就会把 M Ma...
Hive SQL 底层执行过程 | 社区征文
**步骤5**:编译器生成的计划是分阶段的DAG,每个阶段要么是 map/reduce 作业,要么是一个元数据或者HDFS上的操作。将生成的计划发给 DRIVER。如果是 map/reduce 作业,该计划包括 map operator trees 和一个 reduce operator tree,执行引擎将会把这些作业发送给 MapReduce :**步骤6、6.1、6.2和6.3**:执行引擎将这些阶段提交给适当的组件。在每个 task(mapper/reducer) ,从HDFS文件中读取与表或中间输出相关联的数据,并通过相...
干货|火山引擎A/B测试平台如何“嵌入”技术研发流程
也都会用到这样的能力。最后是大消费行业,比如包括家电、客户、汽车行业等等。 接下来,将会和大家探讨研发流程中要怎么使用数据驱动。 **开发新功能的正确姿势是什么?**-------------------... 优化前需要知道mapper数、reducer数、excutor数等参数怎么设置,还要面料executor堆内内存不够、driver堆外内存不够、序列化结果过大等让人头大的错误。 其次,SQL运维优化会花费大量的人力,随着数据量的上...

computeSVD()函数中使用的Mapper和Reducer是什么? -相关内容

字节跳动 MapReduce - Spark 平滑迁移实践

第一步是去创建一个 Hadoop RDD,因为 Hadoop RDD 本身依赖的就是 Hadoop 自己的 Inputformat 的代码,所以这个是完全适配的;第二步调用 Spark 的 Map 算子,然后在 Spark 的 Map 算子里调用用户的 Map 函数;第三步,为... 所以我们通过增加一个中间层去适配用户的代码和 Spark 计算接口,用 MapRunner、 ReduceRunner 适配 Hadoop 里的 Map 和 Reducer 方法,从而使 Spark 的 Map 算子可以运行 Mapper Reducer,我们通过 Counter 的 Ad...

字节跳动 MapReduce - Spark 平滑迁移实践

第一步是去创建一个 Hadoop RDD,因为 Hadoop RDD 本身依赖的就是 Hadoop 自己的 Inputformat 的代码,所以这个是完全适配的;第二步调用 Spark 的 Map 算子,然后在 Spark 的 Map 算子里调用用户的 Map 函数;第三步,为... 所以我们通过增加一个中间层去适配用户的代码和 Spark 计算接口,用 MapRunner、 ReduceRunner 适配 Hadoop 里的 Map 和 Reducer 方法,从而使 Spark 的 Map 算子可以运行 Mapper Reducer,我们通过 Counter 的 Ad...

Hive 作业调优

default_mapper_num))如果要提高 Task 数量,就要降低 mappred.min.split.size 的值,在一定范围可以减小 default_split_size 的值,从而增加 split_num 的值,增大 mapred.map.tasks 的数量。 3.4.2 Reduce Task 数量优化 通过 hive.exec.reducers.bytes.per.reducer 参数控制单个 Reduce 处理的字节数 Reduce 的计算方法如下: sql reducer_num = min( total_size/hive.exec.reducers.bytes.per.reducers, hive.exec.reduc...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询