2015-07-10 59 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