最近開始要做 AI 相關領域, 首先先從 Spark 和 Scala 開始
Spark Shell
下載最新版的 Spark
https://spark.apache.org/downloads.html
我是放在
D:\spark\spark-2.4.0-bin-hadoop2.7\spark-2.4.0-bin-hadoop2.7\bin\spark-shell.bat
設個環境變數
path 也加一下
developing in IntelliJ Idea
安裝 scala
主畫面進入pligin
搜尋 scala
開一個新專案
scala 要用 2.11.x 的版本
https://spark.apache.org/docs/latest/index.html
Spark runs on Java 8+, Python 2.7+/3.4+ and R 3.1+. For the Scala API, Spark 2.4.0 uses Scala 2.11. You will need to use a compatible Scala version (2.11.x).
設定 lib dependencies
以後每次遇到 build.sbt 更新後自動導入相依。
等 “dump project structure from sbt” 的操作全部執行結束, 在建立 scala class
在 src/main/scala/下 建立 scala class
在 WordCount.scala 中貼上程式
1 | import org.apache.spark.SparkContext |
建立文字檔和一些內容在 “D:/workspace/scala/word.txt”
執行
有 error
error 1
1 | ERROR Shell: Failed to locate the winutils binary in the hadoop binary path |
Could not locate executable null\bin\winutils.exe in the hadoop binary
You will need to follow the next steps:
- Download winutils.exe
- Create folder, say C:\winutils\bin
- Copy winutils.exe inside C:\winutils\bin
- Set environment variable HADOOP_HOME to C:\winutils
error 2
1 | Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: |
原本路徑放這樣
1 | val inputFile = "D:\\workspace\\scala\\word.txt" |
後來放在目錄下…
1 | val inputFile = "word.txt" |
這樣就行
Reference
Setup Spark Development Environment – IntelliJ and Scala
使用Intellij Idea編寫Spark應用程序(Scala+SBT