您好〜我对SPARK感兴趣。 我在下面的代码中使用了spark-shell。
val data = sc.parallelize(Array(Array(1,2,3), Array(2,3,4), Array(1,2,1))
res6: org.apache.spark.rdd.RDD[Array[Int]] = ParallelCollectionRDD[0] at parallelize at <console>:26
data.map(x => (x(d), 1)).reduceByKey((x,y) => x + y).sortBy(_._1)
res9: Array[(Int, Int)] = Array((1,2), (2,1))
有效。但是,如果我使用sbt程序集使用此命令,则无效。
错误消息是
[error] value sortBy不是org.apache.spark.rdd.RDD [(Int,Int)]
的成员[error] data.map(x =&gt;(x(d),1))。reduceByKey((x,y)=&gt; x + y)。 sortBy(_._ 1)&lt; =这是问题。
我的build.sbt代码是
import AssemblyKeys._
assemblySettings
name := "buc"
version := "0.1"
scalaVersion := "2.10.5"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.0.0" % "provided"
有什么问题吗?
答案 0 :(得分:2)
第一个问题是您使用的是spark 1.0.0
,如果您阅读了文档,则无法在bootstrapping课程中找到任何sortBy
方法。因此,您应该从1.0.x
更新为2.0.x
。
另一方面,spark-mllib
依赖项用于获取Spark MLlib库,而这不是您需要的。您需要获得spark-core
的依赖关系:
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "2.0.0" % "provided"