使用 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))
((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))