注意
- 每次修改环境变量都要重启cmd
- 本机运行需要hadoop common,可以从 github 下载 zip,解包以后设置 HADOOP_HOME 环境变量指向它,然后在 PATH 里加上 HADOOP_HOME\bin,特别注意,hadoop common 的版本要和 spark 的 hadoop 版本匹配
- spark 的 scala 和 本机的 scala 大版本要匹配
- 报错
Exception while deleting Spark temp dir
,spark运行的临时文件目录是 C:\Users\<your_name>\AppData\Local\Temp
,hadoop common
的 winutils.exe 不够权限删除这个目录,win暂时没有解决方案,不用理它
- 结果在你在程序里设置的输出位置(“d:\tmp”)里,是个文件夹,每次重启程序前要删除它
wordcount 代码
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
object Hello {
def main(args: Array[String]): Unit = {
println("hello")
val conf = new SparkConf().setMaster("local").setAppName("whw example")
val sc = new SparkContext(conf)
val input = sc.textFile("D:\\code_scala\\abc")
val words = input.flatMap(line => line.split(" "))
val counts = words.map(word => (word,1)).reduceByKey{case (x, y) => x+y}
counts.saveAsTextFile("d:\\tmp")
sc.stop()
}
}