如何转置RDD或MLLib矩阵

技术如何将RDD或者MLLib矩阵进行转置操作如何将RDD或者MLLib矩阵进行转置操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如何将

如何转置RDD或MLLib矩阵,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

如何转置Spark Mllib或一个RDD的矩阵。Spark Mllib的矩阵有多种形式,分布式的和非分布式的,非分布式的矩阵这里就不提了,因为是基于数组的,所以很简单。虽然分布式存储是基于RDD的,但问题变成了如何转置RDD。

首先,我们来介绍一下什么是转置运算:

根据百科中的定义,交换矩阵的行和列得到的矩阵就是矩阵的转置。

如果要交换一个RDD的军衔,主要思路如下:

1、首先变换RDD,并给每行一个唯一的行号(row,rowIndex)。

2.对于RDD的每一行,它都被转换为(value,colindex)并排序为(colIndex)。tolong,(rowindex,value))

3.执行平面图

4.完成第3步后,我们只需要按照3key分组,按照它的键排序,就可以得到转换后的列顺序。

5.步骤4完成后,我们可以根据每行的rowIndex,value)构造带有下标及其值的新行,从而保证转换后每行的顺序。

到的转换完成。

具体步骤如下:

def transposserowmatrix(m :行矩阵):行矩阵={ 0

val transposedRowsRDD=m . rows . zippwithindex . map { case(row,row index)=row totransposedtriplet(row,rowIndex)}。flat map(x=x)//(new rownindex,(newColIndex,value))。groupByKey。sortByKey()。map(_。_2) //对行进行排序并删除索引。映射(buildRow) //使用索引和值重新构建每一行,并删除索引。

新行矩阵

}

//转换每一行

def rowtortransposedtriplet(row : Vector,rowIndex: Long):数组[(Long,(Long,Double))]={ 0

val index edrow=row . to array . zipcwithindex

indexedRow.map{case (value,colIndex)=(colIndex.toLong,(rowIndex,value))}

}

//创建新行

def buildRow(row withindex : Iterable[(Long,Double)]): Vector={ 0

val resArr=新数组[双精度]

rowWithIndexes.foreach{case(索引,值)=

resArr(index.toInt)=值

}

vectors . density(ReSarr)

}测试

准备数据

val观测值=sc.parallelize(

Seq(

vectors . density(1.0,10.0,100.0,2.0),

向量.密集(2.0,20.0,200.0,2.0),

向量.密集(3.0,30.0,300.0,2.0)

)

)生成矩阵

valmat :行矩阵=新行矩阵(观察)如何将RDD或者MLLib矩阵进行转置操作

你会发现军衔已经互换了。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154318.html

(0)

相关推荐

  • 配置H3C华三设备远程管理,SSH、Telnet等)

    技术配置H3C华三设备远程管理,SSH、Telnet等) 配置H3C华三设备远程管理(SSH、Telnet等)拓扑如下:
    注:本实验用一台华三路由器模仿真实设备,再一台host主机充当模拟器到本地计算机

    礼包 2021年12月16日
  • TiDB用什么保证备份的一致性

    技术TiDB用什么保证备份的一致性TiDB用什么保证备份的一致性,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。背景作为一名MySQL DBA,就应该了解

    攻略 2021年11月30日
  • 描写梨花的优美古诗,几句赞美梨花的优美语句

    技术描写梨花的优美古诗,几句赞美梨花的优美语句1、清晨,白璧无瑕,大地从沉睡中清醒,梨花也充满着蓬勃的朝气描写梨花的优美古诗。梨花没有玫瑰的妖娆美丽,没有菊花的傲然脱俗,然而它却是我最喜爱的花,雪白的花瓣在露珠的清洗下变

    生活 2021年10月29日
  • python光学仿真面向对象光学元件类的实现是什么

    技术python光学仿真面向对象光学元件类的实现是什么python光学仿真面向对象光学元件类的实现是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能

    攻略 2021年10月20日
  • 黑色上衣配什么颜色的裤子好看,黑色的上衣搭配什么颜色的裤子

    技术黑色上衣配什么颜色的裤子好看,黑色的上衣搭配什么颜色的裤子黑色是百搭色,陪什么裤子都好看。关键是什么场合黑色上衣配什么颜色的裤子好看、什么款式。如果是正装或准正装,在不是特别正式的场合,黑色、灰色、白色、卡其色、深蓝

    生活 2021年10月21日
  • 大熊猫外貌特征描写,要介绍大熊猫的样子怎么写

    技术大熊猫外貌特征描写,要介绍大熊猫的样子怎么写在介绍大熊猫的样子之前,先对大熊猫做一个简单介绍 大熊猫已在地球上生存了至少800万年,被誉为“活化石”和“中国国宝”,世界自然基金会的形象大使,是世界生物多样性保护的旗舰

    生活 2021年10月24日