1

我正在使用 CDH5.1.0 做一些简单的 Spark 编程。另外,我有 Eclipse Juno(与 VM 一起提供)并安装了 Scala IDE 插件 2.10.0。我在 IDE 中收到以下错误:

错误的符号引用。SparkContext.class 中的签名是指包 org.apache.hadoop 中不可用的术语 io。当前类路径中可能完全缺少它,或者类路径上的版本可能与编译 SparkContext.class 时使用的版本不兼容。SimpleApp.scala /MyScalaProject/src/com/test/spark1 第 10 行 Scala 问题

代码:

package com.test.spark1
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
object SimpleApp {
  def main(args: Array[String]) {
    val logFile = "/home/Desktop/scala/sparktest.txt" // Should be some file on your system
    val conf = new org.apache.spark.SparkConf().setAppName("Simple Application")
    val sc = new SparkContext(conf)
    val logData = sc.textFile(logFile, 2).cache()
    val numAs = logData.filter(line => line.contains("a")).count()
    val numBs = logData.filter(line => line.contains("b")).count()
    println("Lines with a: %s, Lines with b: %s").format(numAs, numBs)
  }
}

我在第 10 行(var conf - new org.apache.spark.SparkCon...)和第 15 行(println...)也遇到了同样的错误。

我的项目构建路径已经存在/usr/lib/spark/assembly/lib/spark-assembly-1.0.0-cdh5.1.0-hadoop2.3.0-cdh5.1.0.jar,并且我检查了这个简单的 scala 程序的所有必要类。

4

1 回答 1

2

一旦我在构建路径中添加了以下 jar,编译错误就消失了:

hadoop-common-2.3.0-cdh5.1.0.jar

因此缺少一些内部依赖项导致此错误。

于 2014-08-19T06:30:14.160 回答