spark下运行并行FP-Growth算法当支持度<0.001的时候数组溢出

做微薄的数据挖掘,支持度需要设置比较小,运行的时候支持度大于0.001没有问题,但是小于的时候会出现数组溢出。报错位置为第二行:
val part = res.partition(t1 => tail.exists(t2 => t1._1 == t2))
val p1 = gen(part._1)
if (part._2.length == 0)
return p1
else
return decare(p1,gen(part._2)) ::: p1
}
cur = cur.son.values.head

        def gen(tab : List[(Int , Int)]): List[(List[Int],Int)] = {
if (tab.length == 1) return List((List(tab(0)._1),tab(0)._2))
val sp = tab(0)
val t = gen(tab.drop(1))
(List(sp._1), sp._2) :: t.map(s => (sp._1 :: s._1, s._2 min sp._2)) ::: t

}
源代码网址为

http://www.it165.net/pro/html/201502/33715.html