使用 Spark 在 Scala 中匹配 RDD 中的值

Match a value in RDD in Scala using Spark

((Cool,Yes),3)
((Cool,No),1)
((Mild,Yes),4)
((Mild,No),2)

我有这样的RDD。我想提取带有 yes 作为一个输出的 RDD 和与 yes 或 no 相关联的数字作为另一个输出。 例如输出 1: ((Cool,Yes),3) ((Mild,Yes),4) 输出 2: 3 ((Cool,Yes),3)

谁能告诉我如何在 Scala 中执行此操作?

我尝试过的:

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

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

仍然需要猜测一下您想要什么,但假设输出 1 就是您的意思...

使用 List,但 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))