我有两个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)]?
非常感谢你。
我终于确定了拉梅什所说的根本原因。在第二个RDD中,原始文件中有一个额外的空白行,它引入了一个“”,它使连接结果失败。谢谢大家的回复。