Spark flatmap:map任务可以获得多少内存?

时间:2017-11-14 03:25:54

标签: apache-spark

您好我使用的是包含数组元组的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模式。

0 个答案:

没有答案