2017-03-17 96 views
-2
input: (Array[Int],Array[Int]) 

ex) (Array(1),Array(2)), (Array(),Array()), (Array(4),Array(8)), ... 

如何刪除空數組?如何在scala中刪除空數組

預期輸出是

ex) (Array(1),Array(2)), (Array(4),Array(8))... 

回答

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)))