1
- 问题1:我可以使用元组作为Scala中的地图的键吗?
- 问题2:如果是,我怎样才能创建一个元组作为关键的地图?
问题3:我想将我的Scala地图转换为RDD,在下列情况下我该怎么做?我想用这种方式使用元组作为scala中的键
var mapRDD = sc.parallelize(map.toList)
这是做正确的方式做?
- 问题4:对于这个特定的代码片段,当我在地图上做一个println时,它没有值。
我没有包括整个代码,基本上mapAgainstValue包含userId作为键值和朋友列表值。我想用密钥中的以下转换重新创建地图RDD。 什么是空地图的原因?
var mapAgainstValue = logData.map(x=>x.split("\t")).filter(x => x.length == 2).map(x => (x(0),x(1).split(",")))
var map:Map[String,List[String]] = Map()
var changedMap = mapAgainstValue.map{
line =>
var key ="";
for(userIds <- line._2){
if(line._1.toInt < userIds.toInt){
key =line._1.concat("-"+userIds);
}
else {
key = userIds.concat("-" + line._1);
}
map += (key -> line._2.toList)
}
}
changedMap.collect()
map.foreach(println)
甚至'地图(1 - > 25 - > “香卡”,2 - > 35 - > “拉梅什”)' – Yawar
@Yawar:我喜欢你如何创建的地图的方式.. +1 – Shankar
我相信你应该使用'.collect.foreach(println)'打印RDD:http://spark.apache.org/docs/latest/programming-guide.html#printing-elements-of-an-rdd – dk14