Scala-在连接两个RDD之后如何串联List和Option值?

时间:2018-10-12 15:46:34

标签: scala apache-spark join rdd

我要加入两个RDD-salesfromSource1: RDD[(String, List[Sale])]filteredSales: RDD[(String, Sale)]

由于我要执行左联接,因此我尝试了以下操作:

val joinedSales: RDD[(String, (List[Sale], Option[Sale]))] = salesfromSource1.leftOuterJoin(filteredSales)

但是如何连接这些值,以便得到RDD[(String, List[InvocaCall])]

我期望通过.mapValues(_._1 ::: _._2)

实现这一目标

但是我得到的类型不匹配的编译器突出显示(expected (List[Sale], Option[Sale]) => NotinferedU, actual: (Any, Any) => Any)

1 个答案:

答案 0 :(得分:0)

例如这样的例子:

.mapValues {
   case (x, None) => x
   case (x, Some(y)) => x :: y
}

.mapValues { x =>
  x._2.map(y => x._1 :: y).getOrElse(x._1)
}