2015-07-10 125 views
0

我是新來的火花,但我試圖做一些發展。我正在關注來自the spark developer page的「減少生成時間」指令。創建正常的程序集後,我寫了一些依賴於特定jar的類。我使用定義SPARK_CLASSPATH來測試我的包在Spark-Shell中的包,但是問題在於實際編譯我的代碼。我想要實現的是在編譯我添加的包時包含該jar(與build/sbt compile)。我可以通過在build/sbt文件或sbt-launch-lib.bash中添加一個路徑到我的jar文件,如果是的話如何?spark:如何包含依賴關係build/sbt編譯

(附註:我不想還包括在組裝罐子,因爲正如我去,我做了一些更改,所以它會帶來不便,我使用的Spark 1.4)。

任何幫助感謝!

+0

這聽起來像你要做的是將你的代碼編譯到你正在構建的Spark分發中。那是對的嗎?如果是這樣,那絕對是違背正常實踐的。您應該按照原來的方式訪問代碼,方法是將其添加到CLASSPATH中,或者在啓動spark-shell或spark-submit時將其通過spark-submit或-jars參數傳遞給spark。除非由於特定原因修改核心Spark庫,否則應該單獨離開核心Spark構建。 – DemetriKots

+0

@DemetriKots謝謝你的回覆!是的,我克隆了火花,我最終的目標是爲他們的圖書館貢獻力量。我正在添加一個庫來激發mllib,並且在設置'export SPARK_PREPEND_CLASSES = true'之後,我需要編譯我的代碼,這取決於我的本地jar。有什麼方法可以添加該依賴關係嗎? – Sasha

回答

1

基於上面的註釋中的答案,它看起來像你試圖添加你的jar作爲mllib項目的依賴項,就像你在mllib本身上進行開發一樣。您可以通過修改Spark分發中的mllib目錄中的pom.xml文件來完成此操作。

您可以在這裏找到關於如何添加本地文件作爲依賴項的說明 - http://blog.valdaris.com/post/custom-jar/。我自己沒有使用這種方法來將本地文件作爲依賴項,但我認爲它應該可行。

+0

謝謝!我嘗試過「在項目內部創建一個Maven回購」的方式,它運行良好。 – Sasha