我想将键值RDD转换为其中distinct键应该是列的列,例如
我的RDD是这样的: -
(serviceName,service1)
(startTime,1234)
(endTime,2345)
(serviceName,service2)
(startTime,4567)
(endTime,7891)
结果应该像
serviceName|startTime|endTime
-----------|---------|---------
service1 |1234 |2345
service2 |4567 |7891
任何人都可以使用scala帮助实现这一点。
答案 0 :(得分:0)
让我们假设您的RDD类似于RDD [(K,V)]。还假设您从文件中读取,因此您的RDD将始终按此顺序排序。您可以使用以下代码定期获取行:
rdd.zipWithIndex.filter(_._2==0).map(_._1._2) // then replace 0 with 1, 2
输出将是3个RDD,没有键(列的名称),但您可以使用以下命令找到它们:
rdd.zipWithIndex.filter(_._2==0).map(_._1._1).first() // then replace 0 with 1, 2