IDEA下用SBT搭建Spark Helloworld
原文:http://www.linuxidc.com/Linux/2016-12/138698.htm
沒用過IDEA工具,聽說跟Eclipse差不多,sbt在Idea其實就等于maven在Eclipse。Spark運行在JVM中,所以要在Idea下運行spark,就先要安裝JDK 1.8+ 然后加入Scala和Spark的依賴包就可以進行開發了,不要安裝低版本的JDK。
先下載IDEA的社區版
https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC
Scala、Spark環境
安裝完后下載Scala插件
新建sbt工程
這里需要注意,如果選擇Spark2.0以上,那么Scala要選2.11以上。因為我用的是Spark2.0.2,所以就選擇2.11.1,選擇JDK版本后確認。
工程創建成功后的目錄
編輯build.sbt文件,添加Spark依賴
name := "Scala"version := "1.0" scalaVersion := "2.11.1"
libraryDependencies+= "org.apache.spark" % "spark-core_2.11" % "2.0.2"
保存,等待下載完依賴的包。
PS: Scala版本對應的Spark可在官網查詢
Helloworld
在project下 src/scala包下創建一個scala.class
helloworld.scala
import org.apache.spark.{SparkConf, SparkContext}/**
? * Created by Jan on 2016/12/19.
?*/
object Helloworld {
? ? def main(args: Array[String]) {
? ? ? val logFile= "./README.md"? // Should be some file on your server.
? ? ? val conf = new SparkConf().setAppName("Simple Application").setMaster("local")
? ? ? val sc= new SparkContext(conf)
? ? ? val logData= sc.textFile(logFile, 2).cache()
? ? ? val numAs= logData.filter(line => line.contains("h")).count()
? ? ? val numBs= logData.filter(line => line.contains("j")).count()
? ? ? println("Lines with h: %s, Lines with j: %s".format(numAs, numBs))
? ? }
}
上面代碼目的是:在本地讀取一個叫README.md的文件,通過Spark內存分析,計算字母“h”和字母“j”在文件中出現多少次。
運行代碼
可能出現的錯誤:
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
原因是缺少了winutils.exe文件,這個而且沒有設置HADOOP_HOME
1. 下載hadoop到本機并添加bin目錄到環境變量
http://hadoop.apache.org/releases.html
2. 下載winutils.exe文件,下載后放到hadoop的bin目錄下
總結
以上是生活随笔為你收集整理的IDEA下用SBT搭建Spark Helloworld的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas.read_csv——分块读
- 下一篇: Spark入门 - History Se