在scala中运行wordcount失败

时间:2017-11-26 08:54:42

标签: scala

我正在尝试在scala中运行wordcount程序。这是我的代码的样子。

package myspark;

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.implicits._

object WordCount {
  def main(args: Array[String]) {
   val sc = new SparkContext( "local", "Word Count", "/home/hadoop/spark-2.2.0-bin-hadoop2.7/bin", Nil, Map(), Map())           
      val input = sc.textFile("/myspark/input.txt")             
      Val count = input.flatMap(line ⇒ line.split(" "))
      .map(word ⇒ (word, 1))
      .reduceByKey(_ + _)       
      count.saveAsTextFile("outfile")
      System.out.println("OK");
  }
}

然后我尝试在spark中执行它。

spark-shell -i /myspark/WordCount.scala

我得到了这个错误。

  ... 149 more
<console>:14: error: not found: value spark
       import spark.implicits._
              ^
<console>:14: error: not found: value spark
       import spark.sql
              ^
That file does not exist

有人可以解释一下这段代码中的错误吗?我对Spark和Scala都很新。我已经验证了input.txt文件位于上述位置。

2 个答案:

答案 0 :(得分:1)

你可以看看这里开始:Learning Spark-WordCount

除此之外,我可以看到很多错误

import org.apache.spark..implicits._:这两个点不起作用

除此之外,您是否在项目中添加了spark依赖项?也许甚至提供?你至少必须这样做才能运行火花代码。

答案 1 :(得分:0)

首先检查您是否添加了正确的dependencies。我可以看到你在代码中犯了一些错误。

创建Sparksession而非Sparkcontext SparkSessionAPI

import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("Spark SQL basic example")
.config("spark.some.config.option", "some-value")
.getOrCreate()

然后使用此spark变量

import spark.implicits._

我不确定您在import org.apache.spark..implicits._

之间提到dot 2 spark..implicits的原因