首页 > 解决方案 > Spark RDD 获取和删除行

问题描述

我有 1000 个元素的 RDD。我想从中取出 100 个元素,然后从初始 RDD 中删除这 100 个元素。但是在尝试了多种方法后,我无法找到一种方法。

var part = dataRDD.take(100)

部分是一个数组[字符串]

我想从 100 个 dataRDD 中删除 100 个元素。

var dataRDD = dataRDD.filter(row => row != part)

上面没有显示任何错误,但没有删除任何行。dataRDD 仍然有相同的 1000 行。

您能否指导如何完成这项工作。

标签: scalaapache-spark

解决方案


方法“zipWithIndex”可用于拆分rdd:

val zipped = rdd.zipWithIndex()
val first100 = zipped.filter(_._2 < 100).keys
val remaining = zipped.filter(_._2 >= 100).keys

推荐阅读