2017-03-07 133 views
0

Spark downloads page,如果我下載了tar file for v2.0.1,我發現它包含一些我認爲可以包含在我的應用中的jar。我在哪裏可以找到Spark 1.6中的jar文件夾?

如果我下載了tar file for v1.6.2而不是,我沒有在那裏找到jars文件夾。是否有我應該從該網站使用的備用包類型?我目前選擇默認(預先爲Hadoop 2.6構建)。或者,我可以在哪裏找到那些Spark罐子 - 我應該從http://spark-packages.org中單獨獲得它們中的每一個嗎?

這裏是罐子的指示幫我要用:

  • Hadoop的共同
  • 火花核心
  • 火花CSV
  • 火花SQL
  • 單義的解析器
  • 火花催化劑
  • json4s-core
+1

星火2之前,默認情況下,有一個'火花組裝的只是一個怪物* .jar'下'$ SPARK_HOME/lib'包含所有的依賴關係。如果你想要單獨的JAR,你必須重新編譯Spark。玩的開心! –

+1

另外'spark-csv'是一個單獨的下載*(沒有嵌入到V2之前的Spark代碼庫中)並且需要Apache'commons-csv'。 –

+0

謝謝!謹慎添加這個答案,以便我可以關閉它? – sudheeshix

回答

2

Sparks將其運行時間的方式從V1更改爲V2。

  • 在V2,默認情況下,你必須多個$SPARK_HOME/jars
  • 在V1的JAR文件,默認情況下,只是有一個 大規模spark-assembly*.jar$SPARK_HOME/lib根據該 包含了所有的依賴關係。

我相信你可以改變默認的行爲,但這需要重新編譯你自己星火...

而且還約spark-csv具體爲:

  • 在V2,CSV文件格式本身是由SparkSQL支持的
  • 在V1中,您必須從Spark-Packages.orgcommons-csvCommons.Apache.org下載spark-csv(for Scala 2.10),並將兩個JAR添加到您的CLASSP ATH
    (與--jars命令行,或用道具spark.driver.extraClassPath +指令sc.addJar()如果在命令行中沒有出於某種原因)
    ...和語法是比較煩瑣,太


從摘錄香草 $SPARK_HOME/bin/spark-class如火花的2.1.x(大大簡化)

#查找火花的罐子

SPARK_JARS_DIR="${SPARK_HOME}/jars" 
    LAUNCH_CLASSPATH="$SPARK_JARS_DIR/*" 

而且從Spark 1.6開始。X

#查找組裝罐子

ASSEMBLY_DIR="${SPARK_HOME}/lib" 
    ASSEMBLY_JARS="$(ls -1 "$ASSEMBLY_DIR" | grep "^spark-assembly.*hadoop.*\.jar$" || true)" 
    SPARK_ASSEMBLY_JAR="${ASSEMBLY_DIR}/${ASSEMBLY_JARS}" 
    LAUNCH_CLASSPATH="$SPARK_ASSEMBLY_JAR" 
+0

in spark 2.2.0在'$ SPARK_HOME/jars'中放入罐子似乎可以通過終端將罐子提供給'spark-shell'和'pyspark',但是當我提交一個spark應用程序時,這些罐子沒有被拾取,我獲得ClassNotFound excpt,在構建我的spark上下文時是否需要指定其他任何內容? – perrohunter

+0

你的意思是什麼_「提交一個火花應用程序」_ >>是否意味着'spark-submit' shell在許多其他事物中調用'spark-class'?否則,你必須對整個混亂進行逆向工程 - 祝你好運。 –

相關問題