Scala 如何加速阵列组合的spark作业

Scala 如何加速阵列组合的spark作业,scala,apache-spark,Scala,Apache Spark,我需要得到一个数组的所有组合,以及下面的组合,因为输入数据规模巨大,我无法将其缓存在内存中,有人知道如何加速吗?提前谢谢 val sc = new SparkContext(conf) sc.textFile(subInputPath).filter(s => ((s != "") && (!s.isEmpty))).map(line => { str = line + separator val lineArr = line.split(separa

我需要得到一个数组的所有组合,以及下面的组合,因为输入数据规模巨大,我无法将其缓存在内存中,有人知道如何加速吗?提前谢谢

val sc = new SparkContext(conf)
sc.textFile(subInputPath).filter(s => ((s != "") && (!s.isEmpty))).map(line => {
    str = line + separator
    val lineArr = line.split(separator)
    for (i<-startIndex to lineArr.length - 1) {
        for (j<-(i + 1) to lineArr.length - 1) {
            obj_i = DistributedLRFunctions.safeStringToDouble(lineArr(i))
            obj_j = DistributedLRFunctions.safeStringToDouble(lineArr(j))
            if (!obj_i.equals(None) &&
                !obj_j.equals(None))
                str = str + obj_i.get * obj_j.get + separator
            else
                str = str + missingValue + separator
        }
    }
(str.substring(0, str.length - 1))
}).saveAsTextFile(outputPath)
val sc=new SparkContext(conf)
sc.textFile(subInputPath).filter(s=>((s!=“”)和(&(!s.isEmpty)).map(line=>{
str=行+分隔符
val lineArr=行分割(分隔符)

对于(I)所有字符串操作您在这里尝试做什么?您的最终目标是什么?每行输入看起来像“0.1,0.2,0.3”,我需要得到0.1*0.2,0.1*0.3,0.2*0.3,并将其附加到原始字符串中您在所有字符串操作中尝试做什么?您的最终目标是什么?每行输入看起来像“0.1,0.2,0.3”,我需要得到0.1*0.2,0.1*0.3,0.2*0.3,并将其附加到原始字符串中