相关疑难解决方法(0)

如何使用Graph.fromEdgeTuples从Array [(Any,Any)]创建图形

我很新兴,但我想从Hive表中获得的关系创建一个图表.我找到了一个函数,它应该允许这个而不定义顶点,但我无法让它工作.

我知道这不是一个可重现的例子,但这是我的代码:

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)) //country to country 

val graph = Graph.fromEdgeTuples(couples, 1)
Run Code Online (Sandbox Code Playgroud)

最后一行生成以下错误:

val graph = Graph.fromEdgeTuples(sc.parallelize(couples), 1)
<console>:31: error: type mismatch;
found   : Array[(Any, Any)]
required: Seq[(org.apache.spark.graphx.VertexId,org.apache.spark.graphx.VertexId)]
Error occurred in an application involving default arguments.
val graph = Graph.fromEdgeTuples(sc.parallelize(couples), …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql spark-graphx

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