我有以下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(数据)。
期待在这个问题上提供任何帮助!