相关疑难解决方法(0)

如何从graphx中的元组构建图形并在之后标记节点?

这里可以找到一些上下文,我的想法是我已经从Hive表上的请求中收集的元组创建了一个图形.这些对应于国家之间的贸易关系.以这种方式构建图形后,顶点未标记.我想学习学位分布并获得最相关国家的名字.我尝试了两个选项:

  • 第一:我尝试用顶点的字符串名称映射顶点的索引,函数idMapbis在函数内部,该函数收集并打印十个顶部连接度.
  • 第二:我试图将标签添加到图形本身的顶点.

在这两种情况下,我都会收到以下错误:任务不可序列化

全球代码:

import org.apache.spark.SparkContext
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD

val sqlContext= new org.apache.spark.sql.hive.HiveContext(sc)
val data = sqlContext.sql("select year, trade_flow, reporter_iso, partner_iso, sum(trade_value_us) from comtrade.annual_hs where length(commodity_code)='2' and not partner_iso='WLD' group by year, trade_flow, reporter_iso, partner_iso").collect()
val data_2010 = data.filter(line => line(0)==2010)
val couples = data_2010.map(line=>(line(2),line(3))) //pays->pays 
Run Code Online (Sandbox Code Playgroud)

情侣看起来像这样:数组[(任何,任何)] =数组((MWI,MOZ),(WSM,AUS),(MDA,CRI),(KNA,HTI),(PER,ERI),(SWE,CUB) ),...

val idMap = sc.broadcast(couples 
.flatMap{case (x: String, y: String) => Seq(x, y)}
.distinct 
.zipWithIndex  
.map{case (k, v) => (k, v.toLong)}  
.toMap) 

val edges: RDD[(VertexId, VertexId)] …
Run Code Online (Sandbox Code Playgroud)

serialization scala graph apache-spark

6
推荐指数
1
解决办法
1159
查看次数

标签 统计

apache-spark ×1

graph ×1

scala ×1

serialization ×1