一、前提
1.配置好maven:intellij idea maven配置及maven項目創建
2.下載好spark源碼:
二、導入源碼:
1.將下載的源碼包spark-2.3.1.tgz解壓(E:\spark-2.3.1.tgz\spark-2.3.1.tar)至E:\spark-2.3.1-src
2.在ideal導入源碼:
a.選擇解壓的源代碼文件夾
b.使用maven導入工程
c.選擇對應組件的版本
然后點擊下一步:
點擊finish后,等待maven下載相關的依賴包,之后工程界面如下:
修改E:\spark-2.3.1-src\pom.xml文件,以避免這倆變量未定義,導致最終在E:\spark-2.3.1-src\assembly\target\scala-2.11\沒有jar包
開始使用maven對spark源碼進行編譯打包成jar:
編譯結果如下:
會在每個模塊的target目錄生成對應的jar,並在assembly\target\scala-2.11\jar下生成spark需要的全部jar包

解決辦法如下,在E:\spark-2.3.1-src\sql\catalyst\target目錄下會出現antlr4相關的類:
三.運行spark自帶示例(前提:需要配置spark在windows下的運行環境,參見win7下配置spark)
1.SparkPi
報錯如下:
剛才生成的spark相關的依賴包沒找到,解決辦法如下:
再次運行,結果如下:
2.通過org.apache.spark.deploy.SparkSubmit提交任務並運行(前提是像運行SparkPi一樣,把assembly\target\jars的依賴加進該模塊,方法同上):
2.1 org.apache.spark.repl.Main
結果:
2.2 自定義spark代碼類運行(以自帶的org.apache.spark.examples.JavaWordCount為例)
