input: (Array[Int],Array[Int])
ex) (Array(1),Array(2)), (Array(),Array()), (Array(4),Array(8)), ...
如何删除空数组?
预期输出
ex) (Array(1),Array(2)), (Array(4),Array(8))...
答案 0 :(得分:2)
您可以使用filter
。如果你有一个清单:
val lst = List((Array(1),Array(2)), (Array(),Array()), (Array(4),Array(8)))
lst.filterNot{ case (x, y) => x.isEmpty && y.isEmpty }
// res58: List[(Array[_ <: Int], Array[_ <: Int])] = List((Array(1),Array(2)), (Array(4),Array(8)))
如果您有RDD:
val rdd = sc.parallelize(lst)
// rdd: org.apache.spark.rdd.RDD[(Array[_ <: Int], Array[_ <: Int])] = ParallelCollectionRDD[44] at parallelize at <console>:27
rdd.filter{ case (x, y) => ! (x.isEmpty && y.isEmpty) }.collect
// res60: Array[(Array[_ <: Int], Array[_ <: Int])] = Array((Array(1),Array(2)), (Array(4),Array(8)))