用户登录
用户注册

分享至

spark源码编译

  • 作者: 如此精彩耀眼
  • 来源: 51数据库
  • 2020-09-27
建议你使用intellij idea,在spark目录下执行"sbt/sbt gen-idea",会自动生成.idea项目,导入即可



  1.1lda实例实例步骤:1)加载数据返回的数据格式为:documents:rdd[(long,vector)],其中:long为文章id,vector为文章分词后的词向量;用户可以读取指定目录下的数据,通过分词以及数据格式的转换,转换成rdd[(long,vector)]即可。2)建立模型模型参数设置说明:k:主题数,或者聚类中心数docconcentration:文章分布的超参数(dirichlet分布的参数),必需>1.0topicconcentration:主题分布的超参数(dirichlet分布的参数),必需>1.0maxiterations:迭代次数setseed:随机种子checkpointinterval:迭代计算时检查点的间隔optimizer:优化计算方法,目前支持"em","online"3)结果输出topicsmatrix以及topics(word,topic))输出。实例代码如下:[java]viewplaincopyimportorg.apache.log4j.{level,logger}importorg.apache.spark.{sparkconf,sparkcontext}importorg.apache.spark.mllib.clustering.ldaimportorg.apache.spark.mllib.linalg.vectorsobjectlda{defmain(args:array[string]){//0构建spark对象valconf=newsparkconf().setappname("lda")valsc=newsparkcontext(conf)logger.getrootlogger.setlevel(level.warn)//1加载数据,返回的数据格式为:documents:rdd[(long,vector)]//其中:long为文章id,vector为文章分词后的词向量//可以读取指定目录下的数据,通过分词以及数据格式的转换,转换成rdd[(long,vector)]即可valdata=sc.textfile("data/mllib/sample_lda_data.txt")valparseddata=data.map(s=>vectors.dense(s.trim.split('').map(_.todouble)))//indexdocumentswithuniqueidsvalcorpus=parseddata.zipwithindex.map(_.swap).cache()//2建立模型,设置训练参数,训练模型/***k:主题数,或者聚类中心数*docconcentration:文章分布的超参数(dirichlet分布的参数),必需>1.0*topicconcentration:主题分布的超参数(dirichlet分布的参数),必需>1.0*maxiterations:迭代次数*setseed:随机种子*checkpointinterval:迭代计算时检查点的间隔*optimizer:优化计算方法,目前支持"em","online"*/valldamodel=newlda().setk(3).setdocconcentration(5).settopicconcentration(5).setmaxiterations(20).setseed(0l).setcheckpointinterval(10).setoptimizer("em").run(corpus)//3模型输出,模型参数输出,结果输出//outputtopics.eachisadistributionoverwords(matchingwordcountvectors)println("learnedtopics(asdistributionsovervocabof"+ldamodel.vocabsize+"words):")valtopics=ldamodel.topicsmatrixfor(topic<-range(0,3)){print("topic"+topic+":")for(word<-range(0,ldamodel.vocabsize)){print(""+topics(word,topic));}println()}}}
软件
前端设计
程序设计
Java相关