spark 计算输出的 rowmatrix 矩阵的存储不正常,求大牛指导

问题描述

在集群上计算会遇到一个问题,进行矩阵的奇异值分解时“M.computeSVD(5000,true,1.0E-9d)”时,A=U*s*V分解的s向量存储,V矩阵存储正常,但是分解的左奇异矩阵U默认为rowmatrix矩阵,这个矩阵存储的(存储代码:U.rows.saveAsTextFile("hdfs://s2:9000/outsvd/big_UUT1"))时候,发现存储结果为为好几部分eg:part-00000、part-00001、part-00002.....等,所以想办法让输出结果为一个部分(存储代码:U.rows.repartition(1).saveAsTextFile("hdfs://s2:9000/outsvd/big_UUT1"))但是发现我求出的矩阵U里面的顺序不对,比如按道理是part-00001+part-00000+part-00002的顺序,但是结果按照part-00000+part-00001+part-00002的顺序来的,尝试着输出多次发现U矩阵的结果是不确定的就是因为几个输出的part部分汇总的问题,所以一直不知道该怎么搞,还是希望懂的人能够给与建议及指导部分测试代码如下:文本数据集:matrix_A1.TXT1,0,0,1,0,0,0,0,01,0,1,0,0,0,0,0,01,1,0,0,0,0,0,0,00,1,1,0,1,0,0,0,00,1,1,2,0,0,0,0,00,1,0,0,1,0,0,0,00,1,0,0,1,0,0,0,00,0,1,1,0,0,0,0,00,1,0,0,0,0,0,0,10,0,0,0,0,1,1,1,00,0,0,0,0,0,1,1,10,0,0,0,0,0,0,1,1scala代码importjava.util.{Date,Locale}importjava.text.DateFormatimportorg.apache.spark.mllib.linalg.{Vector,Vectors}importorg.apache.spark.mllib.linalg.Vectorimportorg.apache.spark.mllib.linalg.distributed.RowMatriximportorg.apache.spark.mllib.linalg._valnow1=newDatevalM=newRowMatrix(sc.textFile("hdfs:///usr/matrix/matrix_A1.txt").map(_.split(',')).map(_.map(_.toDouble)).map(_.toArray).map(line=>Vectors.dense(line)))valsvd=M.computeSVD(4,true,1.0E-9d)vallast1=newDatevalU=svd.UU.rows.foreach(println)U.rows.repartition(1).saveAsTextFile("hdfs://1111.11.11.111:9000/outsvd/UU1")

解决方案

解决方案二:
求懂的大牛指导呀,给出具体代码修改建议,小弟拜谢了
解决方案三:
莫要沉了呀

时间: 2024-10-23 12:50:42

spark 计算输出的 rowmatrix 矩阵的存储不正常,求大牛指导的相关文章

《Spark大数据处理:技术、应用与性能优化》——第3章 Spark计算模型3.1 Spark程序模型

第3章 Spark计算模型 创新都是站在巨人的肩膀上产生的,在大数据领域也不例外.微软的Dryad使用DAG执行模式.子任务自由组合的范型.该范型虽稍显复杂,但较为灵活.Pig也针对大关系表的处理提出了很多有创意的处理方式,如flatten.cogroup.经典虽难以突破,但作为后继者的Spark借鉴经典范式并进行创新.经过实践检验,Spark的编程范型在处理大数据时显得简单有效.的数据处理与传输模式也大获全胜.Spark站在巨人的肩膀上,依靠Scala强有力的函数式编程.Actor通信模式.闭

Apache Spark机器学习.1.2 在机器学习中应用Spark计算

1.2 在机器学习中应用Spark计算 基于RDD和内存处理的创新功能,Apache Spark真正使得分布式计算对于数据科学家和机器学习专业人员来说简便易用.Apache Spark团队表示:Apache Spark基于Mesos 集群管理器运行,使其可以与Hadoop以及其他应用共享资源.因此,Apache Spark可以从任何Hadoop输入源(如HDFS)中读取数据.   Apache Spark计算模型非常适合机器学习中的分布式计算.特别是在快速交互式机器学习.并行计算和大型复杂模型情

spark计算hdfs上的文件时报错

问题描述 spark计算hdfs上的文件时报错 scala> val rdd = sc.textFile("hdfs://...") scala> rdd.count java.lang.VerifyError: class org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$AppendRequestProto overrides final method getUnknownFields.

spark计算mongodb数据,不知是环境的问题还是代码的问题,还没入门大神们帮帮忙啊

问题描述 spark计算mongodb数据,不知是环境的问题还是代码的问题,还没入门大神们帮帮忙啊 spark计算mongodb中的数据,总是计算不出结果,这些错误信息也找不到是为什么, 有一两次能计算出结果 .第一次接触这个东西 大神们帮帮忙啊 主要代码如下: SparkConf sparkConf = new SparkConf(); sparkConf.setMaster(SPARK_PATH); sparkConf.setAppName("Logs_Collect"); Str

无向图 邻接表-无向图的存储结构,求大神求大神

问题描述 无向图的存储结构,求大神求大神 Description 给出一个有n个顶点的无向图,顶点编号从0到n-1.给出每一条边,输出该图的邻接矩阵和邻接表. Input 输入的第一行是顶点数n和边数 e . 1 ≤ n ≤ 300 ,1 ≤ e ≤ 1000 接下来是 e 行,每行2个整数 i , j ( 0 ≤ i, j < n ) ,表示顶点 i 和 j 之间有一条边. Output 输出该图的邻接矩阵.邻接表按顶点编号每行从小到大,每列也是从小到大. 然后输出一个空行. 接着输出该图的邻

c8051f410-通过超声测得的距离控制PWM输出的代码,不知道哪里错了,求大神帮忙看看

问题描述 通过超声测得的距离控制PWM输出的代码,不知道哪里错了,求大神帮忙看看 #include #define SYSCLK 24500000 // Internal oscillator frequency in Hz #define BAUDRATE 9600 // Baud rate of UART in bps #define uchar unsigned char #define uint unsigned int //L298输入控制端定义 sbit IN1 = P2^0; sb

C++计算HMAC sha1和HMAC MD5 与java 计算HMAC sha1和HMAC MD5不一样?求高手解答,附上源码

问题描述 publicclassSHA1{privatefinalint[]abcde={0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0};//摘要数据存储数组privateint[]digestInt=newint[5];//计算过程中的临时数据存储数组privateint[]tmpData=newint[80];//计算sha-1摘要privateintprocess_input_bytes(byte[]bytedata){//初

在图采用邻接表存储时,求最小生成树的Prime算法的时间复杂度为?

问题描述 在图采用邻接表存储时,求最小生成树的Prime算法的时间复杂度为? 在图采用邻接表存储时,求最小生成树的Prime算法的时间复杂度为? A o(n^2) B o(n^3) C o(n) D o(n+e) 答案是o(n+e)...不理解..求过程 解决方案 不对,这题应该选A 求顶点的入度的时间复杂度为O(e)*n=O(n*e) 遍历顶点的时间复杂度是O(n^2) 相加是O(n^2+n*e)=O(n^2) 解决方案二: 详细的解释http://www.cskaoyan.com/redir

c语言-C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释

问题描述 C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释 #includeint change(int *data){ return (*data)++;}main(){ int data=123; change(&data); printf(""%ddata); data=change(&data); printf(""%d""data); printf(""n"");}V