2015-10-25 32 views
0

我很難從RDD查找其中密鑰來自不同RDD的值。 我需要將topsuperhero數組[int]的RDD轉換爲純字符串,然後我可以傳遞給namesmap.lookup rdd。lookup rdd其中密鑰來自不同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

要將數組[INT]轉換成一個字符串,你可以做到以下幾點:

val str = topsuperhero.mkString(" ") 

這將topsuperhero轉換成字符串