2015-09-25 58 views
-2
((Cool,Yes),3) 
((Cool,No),1) 
((Mild,Yes),4) 
((Mild,No),2) 

我有这样的RDD。我想提取RDD作为一个输出,并将与yes或no关联的编号作为另一个输出。 例如输出1: ((Cool,Yes),3) ((Mild,Yes),4) 输出2: 3代表((Cool,Yes),3)使用Spark匹配Scala中的RDD值

任何人都可以告诉我如何在Scala中做到这一点?

我曾尝试:

def check(s : Array[((String, String), Int)]) : Boolean = 
    if (prob2.equals("Yes")) true else false 

val res = inFile.map{ x => check(prob2) } 
+0

'DEF检查(S:数组[((字符串,字符串),智力)]):布尔=如果(prob2.equals( “是”))真假其他 \t VAL解析度= infile的。 map {x => check(prob2)}'这个我已经试过了 这个。 Prob2是我得到的((Cool,Yes),3) ((Cool,No),1) ((轻度,是),4) ((轻度,否),2) – Aditi

+0

请编辑您的文章并在其中添加您的附加代码,而不是在评论中。 –

+2

在StackOverflow问题中,看起来像天气测量的RDD很常见,所以我怀疑这是某个课程的作业。您是否在此主题上搜索了Stackoverflow的其他问题/答案? –

回答

2

仍然有猜测了一下,你想要什么,但假设输出1是你的意思......

与列表,但RDD的工作原理相同:

val data = List((("Cool","Yes"),3), 
       (("Cool","No"),1), 
       (("Mild","Yes"),4), 
       (("Mild","No"),2)) 

def check(row: ((String, String), Int), value:String) = row._1._2 == value 

data.filter(check(_,"Yes")) 
// List(((Cool,Yes),3), ((Mild,Yes),4)) 
data.filter(check(_,"No"))  
// List(((Cool,No),1), ((Mild,No),2)) 
+0

这就是我所期待的。让我尝试 – Aditi

相关问题