[英]Spark 1.3.1 SQL libriary: scala.reflect.internal.MissingRequirementError: class org.apache.spark.sql.catalyst.ScalaReflection
When trying to run this code: 尝试运行此代码时:
val conf = new SparkConf()
.setMaster("local[1]")
.setAppName("Small")
.set("spark.executor.memory", "2g")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
val df = sc.parallelize(Array((1,30),(2,10),(3,20),(1,10)(2,30))).toDF("books","readers")
val results = df.join(
df.select($"books" as "r_books", $"readers" as "r_readers"),
$"readers" === $"r_readers" and $"books" < $"r_books"
)
.groupBy($"books", $"r_books")
.agg($"books", $"r_books", count($"readers"))
Under SBT console started with the following build.sbt: 在SBT控制台下,以以下build.sbt开始:
name := "Small"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.3.1"
Returns error: 返回错误:
scala.reflect.internal.MissingRequirementError: class org.apache.spark.sql.catalyst.ScalaReflection in JavaMirror with java.net.URLClassLoader@13a9a4f9 of ... scala.reflect.internal.MissingRequirementError:JavaMirror中的类org.apache.spark.sql.catalyst.ScalaReflection具有java.net.URLClassLoader@13a9a4f9的...
Any ideas? 有任何想法吗?
you have some spelling errors, and finally the last function count cannot be there you need to import org.apache.spark.sql.functions._ 您有一些拼写错误,最后最后一个函数计数不能在那里,您需要导入org.apache.spark.sql.functions._
Check this, I corrct the Spelling errors and add the imports 对此进行检查,我纠正了拼写错误并添加了导入
import org.apache.spark.{ SparkContext, SparkConf }
import org.apache.spark.sql.functions._
/**
* Created by anquegi on 01/06/15.
*/
object QSpark162015 extends App {
val conf = new SparkConf()
.setMaster("local[2]")
.setAppName("QSpark162015")
.set("spark.executor.memory", "2g")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
val df = sc.parallelize(Array((1, 30), (2, 10), (3, 20), (1, 10), (2, 30))).toDF("books", "readers")
val results = df.join(
df.select($"books" as "r_books", $"readers" as "r_readers"),
$"readers" === $"r_readers" and $"books" < $"r_books"
)
.groupBy($"books", $"r_books")
.agg($"books", $"r_books", count($"readers"))
results.foreach(println _)
sc.stop()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.