在Scala中使用SQL上下文运行Spark程序时出现异常

时间:2017-02-07 02:21:54

标签: scala apache-spark apache-spark-sql

我正在尝试运行使用Maven构建的简单Spark scala程序

以下是源代码:

 case class Person(name:String,age:Int)


object parquetoperations {
  def main(args:Array[String]){

    val sparkconf=new SparkConf().setAppName("spark1").setMaster("local")
    val sc=new SparkContext(sparkconf);
    val sqlContext= new SQLContext(sc)
    import sqlContext.implicits._
    val peopleRDD = sc.textFile(args(0));
    val peopleDF=peopleRDD.map(_.split(",")).map(attributes=>Person(attributes(0),attributes(1).trim.toInt)).toDF()
    peopleDF.createOrReplaceTempView("people")
    val adultsDF=sqlContext.sql("select * from people where age>18")
    //adultsDF.map(x => "Name: "+x.getAs[String]("name")+ " age is: "+x.getAs[Int]("age")).show();

  }
}

以下是我拥有的maven依赖项。

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.10</artifactId>
    <version>2.1.0</version>
</dependency>
<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-xml</artifactId>
    <version>2.11.0-M4</version>
</dependency>

它抛出以下错误。试图以各种方式调试,没有运气

  

线程中的异常&#34; main&#34; java.lang.NoSuchMethodError:   。scala.Predef $ $范围()Lscala / XML / TopScope $;

看起来这是与加载spark web ui相关的错误

1 个答案:

答案 0 :(得分:0)

所有依赖项都在Scala 2.10上,但 scala-xml 依赖项在Scala 2.11上。

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-xml</artifactId>
    <version>2.11.0-M4</version>
</dependency>
不过,除非你真的有充分理由这样做,否则我建议你转到Scala 2.11.8。 2.11与2.10相比,一切都好得多。