过滤掉列表列表中的元素

时间:2017-01-17 10:23:39

标签: list apache-spark filter tuples

我有以下RDD(List [List [String]]):

val x: List[List[String]] = List(List("0029", "029070", "99999", "19010101"), List("270", "1", "N", "0159"))
val data = sc.parallelize(x)

我想从索引0和3的每个列表元素中删除,例如:

val removeElements = List(0, 3)
data.map(_.zipWithIndex).collect.filter { a => !removeElements.contains(a._2) }.map { _._1 }

但这会导致我无法解决的错误:

<console>:28: error: value _2 is not a member of List[(String, Int)]
          data.map(_.zipWithIndex).collect.filter { a => !toRemove.contains(a._2) }.map { _._1 }

此外,如果我可以将结果直接映射到案例类,那将是很好的:

case class MyData(a: String, b: String)

我发现只要我将数据变量过滤为每个只有2个元素,我就可以使用MyData.tupled(数据)。

期待在这个问题上提供任何帮助!

0 个答案:

没有答案