spark scala中RDD的减少

spark scala中RDD的减少,scala,apache-spark,reduce,Scala,Apache Spark,Reduce,我有一个RDD(会话ID、会话开始时间、会话长度)…我需要按会话ID减少此RDD,然后生成相应会话开始时间和长度的数组。有人能告诉我如何用scala编写代码吗 所以我需要从RDD[(会话ID、会话开始时间、会话长度)转换过来 到RDD[(会话ID,Seq[(会话开始时间,会话长度)]) 我怎样才能做到这一点呢?也许groupBy会有所帮助(尽管不太推荐,因为它可能会很慢): 在这种情况下,grouped将是一个RDD[(String,Iterable[(String,Int,Int)]。然后您可

我有一个RDD(会话ID、会话开始时间、会话长度)…我需要按会话ID减少此RDD,然后生成相应会话开始时间和长度的数组。有人能告诉我如何用scala编写代码吗

所以我需要从RDD[(会话ID、会话开始时间、会话长度)转换过来 到RDD[(会话ID,Seq[(会话开始时间,会话长度)])
我怎样才能做到这一点呢?

也许
groupBy
会有所帮助(尽管不太推荐,因为它可能会很慢):

在这种情况下,
grouped
将是一个
RDD[(String,Iterable[(String,Int,Int)]
。然后您可以轻松地映射它以获得所需的格式

或者,您可以使用
map
+
groupByKey

val grouped = a.map { 
  case(sessionID, startTime, length) => (sessionID, (startTime, length)) 
}.groupByKey
val grouped = a.map { 
  case(sessionID, startTime, length) => (sessionID, (startTime, length)) 
}.groupByKey