您好我使用的是包含数组元组的rdd,即类型 RDD [(Array [Int],Array [Int])]
rdd = sc.parallelize(Array( (Array(1, 2, 3), Array(3,4, 5))
(Array(5, 6, 7), Array(4,5, 6))
....
))
我正在尝试执行以下操作:
rdd.flatMap{ case (arr1, arr2) =>
(for(i <- arr1; j <- arr2) yield (i, j) )
}
我注意到,当我将数组的大小从500增加到5000时,运行时间从几分钟增加到大约10分钟,
但是,如果我将数组的大小从5K增加到6K,则此操作的运行时间会增加到几个小时。
所以我想知道为什么我的运行时间从5K增加到6K这么大,而从1k到5k的运行时间顺利增加?
我怀疑可能是达到map任务的内存限制,并且涉及磁盘操作,导致运行时间长,但是大小并不是很大,因为我在本地分配了14G内存和8个内核到Spark模式。