让我们输入类似
(Name , List[Interest]),
"Chandru",("Java","Scala","Python")
"Sriram", ("Science","Maths","Hadoop","C2","c3")
"Jai",("Flink","Scala","Haskell")
为这个人创建一个案例类,
case class Person(name:String, interest:List[String])
创建输入
val input={Seq(Person("Chandru",List("Java","Scala","Python")),Person("Sriram",List("Science","Maths","Hadoop","C2","c3")),Person("Jai",List("Flink","Scala","Haskell")))}
val rdd=sc.parallelize(input)
val mv=rdd.map(p=>(p.name,p.interest))
val fmv=mv.flatMapValues(v=>v.toStream)
fmv.collect
结果是:
Array[(String, String)] = Array(
(Chandru,Java),
(Chandru,Scala),
(Chandru,Python),
(Sriram,Science),
(Sriram,Maths),
(Sriram,Hadoop),
(Sriram,C2),
(Sriram,c3),
(Jai,Flink),
(Jai,Scala),
(Jai,Haskell))