您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Spark RDD(Java)中按索引获取元素

如何在Spark RDD(Java)中按索引获取元素

首先应为RDD建立索引,这应该是可能的。转换zipWithIndex提供了稳定的索引,以其原始顺序对每个元素进行编号。

鉴于: rdd = (a,b,c)

val withIndex = rdd.zipWithIndex // ((a,0),(b,1),(c,2))

要按索引查找元素,此形式无用。首先,我们需要使用索引作为键:

val indexKey = withIndex.map{case (k,v) => (v,k)}  //((0,a),(1,b),(2,c))

现在,可以使用lookupPairRDD中的操作按键查找元素:

val b = indexKey.lookup(1) // Array(b)

如果您希望lookup经常在同一RDD上使用,建议您缓存indexKeyRDD以提高性能

如何使用Java API进行此操作是读者的一项练习。

java 2022/1/1 18:13:55 有657人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶