spark scala中RDD的减少
我有一个RDD(会话ID、会话开始时间、会话长度)…我需要按会话ID减少此RDD,然后生成相应会话开始时间和长度的数组。有人能告诉我如何用scala编写代码吗 所以我需要从RDD[(会话ID、会话开始时间、会话长度)转换过来 到RDD[(会话ID,Seq[(会话开始时间,会话长度)])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)]。然后您可
我怎样才能做到这一点呢?也许
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