несоответствие типа искры скала - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно сгруппировать мой rdd по двум столбцам и объединить счет.У меня есть функция:

def constructDiagnosticFeatureTuple(diagnostic: RDD[Diagnostic])
: RDD[FeatureTuple] = {

    val grouped_patients = diagnostic
      .groupBy(x => (x.patientID, x.code))
      .map(_._2)
      .map{ events =>
        val p_id = events.map(_.patientID).take(1).mkString
        val f_code = events.map(_.code).take(1).mkString
        val count = events.size.toDouble
        ((p_id, f_code), count)
      }
    //should be in form:
    //diagnostic.sparkContext.parallelize(List((("patient", "diagnostics"), 1.0)))
}

Во время компиляции я получаю сообщение об ошибке:

/FeatureConstruction.scala:38:3: type mismatch;
[error]  found   : Unit
[error]  required: org.apache.spark.rdd.RDD[edu.gatech.cse6250.features.FeatureConstruction.FeatureTuple]
[error]     (which expands to)  org.apache.spark.rdd.RDD[((String, String), Double)]
[error]   }
[error]   ^ 

Как это исправить?Я отмечаю этот пост: Обнаружено несоответствие типа Scala Spark Unit, требуется rdd.RDD , но я не использую collect (), поэтому он мне не помогает.

...