简体   繁体   English

Spark 1.3.1 SQL库:scala.reflect.internal.MissingRequirementError:类org.apache.spark.sql.catalyst.ScalaReflection

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM