排序rdd中嵌套列表中的元素(scala/spark)

lpwwtiir  于 2021-07-14  发布在  Spark
关注(0)|答案(0)|浏览(236)

[已解决-请进一步查看]我正在尝试对rdd对象的每个嵌套列表中的元素进行排序,如下所示:
org.apache.spark.rdd.rdd[(long,list[list[string]])]
未排序的外观示例:

(342, List(List([banana], [apple]), List([orange], [lemon])))
(342, List(List([coconut], [carrot]), List([watermelon], [kiwi])))
(794, List(List([strawberry], [carrot]), List([lemon], [orange])))

并希望输出如下(嵌套列表的内容按字母降序排序):

(342, List(List([apple], [banana]), List([lemon], [orange])))
(342, List(List([carrot], [coconut]), List([kiwi], [watermelon])))
(794, List(List([orange], [strawberry]), List([carrot], [lemon])))

解决方案:通过执行以下操作来解决它(反转组结构并对非嵌套列表排序(请注意,rdd结构已更改,但在本例中无关紧要)。

data.flatMap(x => x._2.map(i => (x._1, i))).mapValues(x => x.sorted)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题