如何打印已加入的RDD结果

问题描述 投票:0回答:1

我有两个RDD:

scala> mgrMap.take(5).foreach(println)
(1,Cliff)
(2,Raj)
(3,Alim)
(4,Jose)
(5,Jeff)

salMap.take(5).foreach(println)
(1,100)
(2,200)
(3,300)
(4,400)
(5,500)

我加入了他们并获得了第三个RDD:

scala> val joined = mgrMap.join(salMap)
scala> joined res14: org.apache.spark.rdd.RDD[(Int, (String, Int))] = MapPartitionsRDD[8] at join at <console>:35

我想要的是打印第三个RDD“加入”的内容,格式如下:

(1, Cliff, 100)
....
(5, Jeff, 500) 

我试过这个而不是工作:

scala> val joinedMap = joined.map(x=>(x._1, x._2._1, x._2._2))
joinedMap: org.apache.spark.rdd.RDD[(Int, String, Int)] = apPartitionsRDD[11] at map at <console>:37

当我加入Map.first时,我得到的错误是:

18/02/26 21:02:42 ERROR Executor:阶段19.0中的任务1.0中的异常(TID 19)java.lang.NumberFormatException:对于输入字符串:“”

如果我跑,同样的错误

joined.collect

我的命令出了什么问题?如何显示RDD的预期结果,如RDD [(Int,String,Int)]?

非常感谢你。

scala rdd
1个回答
0
投票

我终于确定了拉梅什所说的根本原因。在第二个RDD中,原始文件中有一个额外的空白行,它引入了一个“”,它使连接结果失败。谢谢大家的回复。

© www.soinside.com 2019 - 2024. All rights reserved.