sortby不是org.apache.spark.rdd.rdd的成员

yk9xbfzb  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(525)

你好~我对spark感兴趣。我在sparkshell中使用下面的代码。

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 assembly命令,它就不起作用了。
错误消息是
[错误]值sortby不是org.apache.spark.rdd.rdd[(int,int)]的成员
[错误]data.map(x=>(x(d),1)).reducebykey((x,y)=>x+y).sortby(u.\1)<=这就是问题所在。
我的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"

有什么问题吗?

v1uwarro

v1uwarro1#

第一个问题是你正在使用 spark 1.0.0 ,如果您阅读了文档,您将找不到任何 sortBy 方法。所以,你应该从 1.0.x2.0.x .
另一方面 spark-mllib 依赖关系用于获取spark mllib库,而这不是您所需要的。你需要得到的依赖 spark-core :

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "2.0.0" % "provided"

相关问题