Spark/Scala:展开(List [String],String)元组的列表

Bre*_*dán 2 scala tuples scala-collections apache-spark rdd

基本上这个问题只针对Scala.

在给定带有表单元素的RDD的情况下,如何进行以下转换

(List[String], String) => (String, String)
Run Code Online (Sandbox Code Playgroud)

例如

([A,B,C], X)
([C,D,E], Y)

to

(A, X)
(B, X)
(C, X)
(C, Y)
(D, Y)
(E, Y)
Run Code Online (Sandbox Code Playgroud)

所以

Mar*_*rth 8

scala> val l = List((List('a, 'b, 'c) -> 'x), List('c, 'd, 'e) -> 'y)
l: List[(List[Symbol], Symbol)] = List((List('a, 'b, 'c),'x),
                                       (List('c, 'd, 'e),'y))

scala> l.flatMap { case (innerList, c) => innerList.map(_ -> c) }
res0: List[(Symbol, Symbol)] = List(('a,'x), ('b,'x), ('c,'x), ('c,'y),
                                    ('d,'y), ('e,'y))
Run Code Online (Sandbox Code Playgroud)