Изправен съм пред разочароващ проблем, докато се опитвам да използвам groupByKey
или която и да е функция на PairRDD или MappedRDD. Това, което получавам е, че винаги имам само RDD
и не знам как да го преобразувам (наистина съм напълно сигурен, че преобразуването трябва да бъде автоматично открито от Scala). Моят код е следният:
val broadcastedDistanceMeasure = sc.broadcast(dbScanSettings.distanceMeasure)
val distances = input.cartesian(input)
.filter(t => t._1!=t._2)
.map( {
case(p1, p2) => (p1) -> broadcastedDistanceMeasure.value.distance(p1,p2)
})
където input
е RDD
. И полученият тип според Eclise и sbt run
всъщност е RDD
. Така че не мога да изпълня операция groupByKey
. Ако опитам почти същия код на искровия шел, вместо това получавам MappedRDD
.
Това е моят файл build.sbt
:
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.1.0"
Може ли някой да ми помогне?
Благодаря.
Поздравления.
Марко
groupByKey
само защото НЕ импортиратеorg.apache.spark.SparkContext._
. - person ale64bit   schedule 07.03.2015