前言:一直在使用python做數據處理,閱讀spark官方文檔時到後半部分的MLlib機器學習部分有些機器學習方法竟然沒有python,很是遺憾,遂着手準備學學scale,畢竟原生語言,開發起來應該是絲絲入扣,順滑平坦。
1.下載intelliJ IDEA
下載傳送門
建議下載找個註冊碼安裝Ultimate版本。
(在安裝時不要一直點,看清楚意思再進行選擇,儘量多的把能裝上的語言都裝上,這樣會少不少麻煩。)
如果錯過安裝時候還是錯了安裝scale插件,那麼按如下步奏走:
進入idea主界面
在線安裝:
選擇Plugins :
輸入scala:
選擇右側的安裝即可
2.安裝好之後
file->new->project->選擇scale
3.新建scale項目完成後,按如下目錄進行配置
打開項目,目錄如下:
找到build.sbt添加如下配置:
libraryDependencies += “org.apache.spark” %% “spark-core” % “2.0.0”
配置完成如下:
在src->scala->文件夾下創建new scaleClass
代碼入下:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object Test {
// def main(args: Array[String]): Unit = {
// println("hello world")
// }
def main(args: Array[String]) {
val logFile = "/home/zhuan/Soft/spark-2.0.0-bin-hadoop2.7/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application").setMaster("spark://zhuan-OptiPlex-9020:7077").setJars(List("/home/zhuan/IdeaProjects/hello/out/artifacts/hello_jar/hello.jar"))
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
println(logData.collect())
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
//// val data = Array(1, 2, 3, 4, 5)
//// val distData = sc.parallelize(data)
//// println(distData.take(1))
//// println(distData)
// val lines = sc.textFile("/home/zhuan/Soft/spark-2.0.0-bin-hadoop2.7/README.md")
// val lineLengths = lines.map(s => s.length)
// val totalLength = lineLengths.reduce((a, b) => a + b)
// println(totalLength)
}
}
以上代碼在打包jar之後可直接運行,相比官網spaekConf需要多設置master 和setJars路徑。(根據讀者自己的電腦情況需要更該setMaster和setJars)
4.打包jar
file ->project Struceture
打好jar ,直接點擊綠色運行就能直接運行了,每次修改代碼都要重複打jar包這個過程,不知道是否有更好的方法。歡迎各位專家指正。
關於導包的問題:
我推薦使用sbt文件安裝依賴,
格式如下:
#導入機器學習包依賴
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.0.0"
#導入spark核心包依賴
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.0"
名稱可能不清楚的可以進入maven官網搜索查看
附
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("Simple Application").setMaster("spark://zhuan-OptiPlex-9020:7077").setJars(List("/home/zhuan/IdeaProjects/hello/out/artifacts/hello_jar/hello.jar"))
val sc = new SparkContext(conf)
val spark = SparkSession
.builder()
.appName("Spark SQL basic example")
.config("spark.some.config.option", "some-value")
.getOrCreate()