我正在尝试在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文件位于上述位置。
答案 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
的原因