我需要使用以下格式对rdd应用一些处理:
RDD[(String,List[(String,String,String,String)])]
以下是来自RDD的示例条目:
(600,List((5,111,1,1), (15,111,1,5), (38,111,2,null))
(700,List((5,111,1,1), (35,111,1,5), (39,111,2,null))
我需要根据时间戳值将每个条目拆分成几个条目,这些值位于List中每个元组的第一个元素中。每个条目应包含20分钟内的时间戳。
例如,第一个条目应分为两个条目:
List((5,111,1,1), (15,111,1,5))
List((38,111,2,null))
最终结果应为RDD[(String,List[(String,String,String,String)])]
:
(600,List((5,111,1,1), (15,111,1,5)))
(600,List((38,111,2,null)))
(700,List((5,111,1,1))
(700,List((35,111,1,5), (39,111,2,null))
任何提示如何执行此操作以及应用哪些功能?
答案 0 :(得分:2)
您可以创建一个splitList
函数,根据您所需的行为从给定记录中拆分列表(不确定我是否准确地遵循了它,描述有点含糊不清),然后使用 {{1} 将每个键值记录“拆分”为多个记录:
flatMap