查找rdd,其中键来自不同的rdd

时间:2015-10-25 11:29:41

标签: scala apache-spark

我很难从一个RDD中查找值,其中密钥来自不同的RDD。 我需要将topsuperhero数组[Int]的RDD转换为纯字符串然后我可以传递给namesmap.lookup rdd。

如何将[Int]数组转换为纯字符串?我需要写一个函数吗?

val names = sc.textFile("C:\\Users\\kalit_000\\Desktop\\udemy_spark\\marvelnames.txt")
val namemap = names.map(x => x.split(" ")).map(x => (x(0),x(1)))

val graph = sc.textFile("C:\\Users\\kalit_000\\Desktop\\udemy_spark\\marvelgraph.txt")
val graphmap = graph.map(x => x.split(" ")).map(x => (x(0).toInt,(x.length -1).toInt))

val totalfirendsBycharacter = graphmap.mapValues(x => (x)).reduceByKey((x,y) => x+y)
val topsuperhero = totalfirendsBycharacter.sortBy(_._2,false).take(1)

错误:   topsuperhero是我需要转换为纯字符串的数组[Int]我该如何实现呢?

namemap.lookup(topsuperhero.map(x => x._1)).foreach(println)

1 个答案:

答案 0 :(得分:1)

要将Array [Int]转换为String,您可以执行以下操作:

val str = topsuperhero.mkString(" ") 

这会将topsuperhero转换为字符串