【发布时间】:2015-03-08 01:19:02
【问题描述】:
在尝试使用 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 操作。如果我在 spark shell 上尝试几乎相同的代码,我会得到一个MappedRDD。
这是我的build.sbt 文件:
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.1.0"
谁能帮帮我?
谢谢。
您好。
马可
【问题讨论】:
-
也许您没有看到
groupByKey操作只是因为您没有导入org.apache.spark.SparkContext._。
标签: scala apache-spark rdd