我对Scala和Spark都很陌生。我将Scala IDE添加到Eclipse Luna。我在Eclipse中创建了一个Maven项目。我当时是使用Eclipse作为配置选项在Eclipse中运行程序,并能够成功获取输出。但是,当我为以下程序创建jar并尝试运行spark shell时,出现以下错误。
error: ';' expected but 'class' found.
使用命令运行jar
spark-submit --class com.kirthi.spark.proj.sparkexamples.WordsCount --master local /home/cloudera/workspace/sparkwc1.jar hdfs://localhost:8020/kirthi3/dataset.txt hdfs://localhost:8020/kirthi3/sparkwco
我尝试过的字数统计程序
package com.kirthi.spark.proj.sparkexamples
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
object WordsCount {
def main(args: Array[String]){
val conf = new SparkConf()
.setAppName("Word Count")
.setMaster("local")
val sc = new SparkContext(conf)
val textFile = sc.textFile(args(0))
val words = textFile.flatMap(line => line.split(","))
val counts = words.map(word => (word,1))
val wordcount = counts.reduceByKey(_+_)
val wordcount_sorted = wordcount.sortByKey()
wordcount_sorted.foreach(println)
wordcount_sorted.saveAsTextFile(args(1))
}
}
请帮助我,因为我对最初的 Spark 程序感到震惊。
我正在使用cloudera quickstart CDH 5.5
最佳答案
如注释中所示,您在Scala REPL中运行了上述命令,应该从常规的Linux shell中运行该命令。
关于eclipse - Scala Word计数 jar 未在 Spark 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166799/