在 IntelliJ 上添加对远程 spark 的依赖
Posted
技术标签:
【中文标题】在 IntelliJ 上添加对远程 spark 的依赖【英文标题】:Add dependency to remote spark on intelliJ 【发布时间】:2016-02-23 07:33:09 【问题描述】:我在 IntelliJ 中远程运行 spark,但在向 spark conf 添加依赖时遇到了困难。
val conf = new SparkConf()
.setMaster("spark://IP:7077")
.set("packages", "com.databricks:spark-avro_2.10:2.0.1:jar")
.setAppName("localtrial")
错误:
16/02/23 12:27:10 WARN TaskSetManager:在阶段 0.0 中丢失任务 0.0(TID 0,172.16.248.156):java.lang.ClassNotFoundException:com.databricks.spark.avro.AvroRelation$$anonfun$ buildScan$1$$anonfun$3 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) ```
我也尝试过 conf 类的 setJars 属性。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您需要将依赖项添加到您的 build.sbt
文件中,以便 IntelliJ 可以针对它进行编译。如果您将它作为参数添加到spark-submit
,那么您可以将依赖项设置为prodived
,否则您需要使用 sbt-assembly 或类似插件将其打包到您的 jar 文件中。
将以下行添加到您的 build.sbt
文件中,如果启用了自动导入,Intellij 将下载依赖项。如果未启用自动导入,请关闭项目并再次导入或使用 SBT 工具窗口中的刷新按钮。
libraryDependencies += "com.databricks" %% "spark-avro" % "2.0.1" % "provided"
【讨论】:
以上是关于在 IntelliJ 上添加对远程 spark 的依赖的主要内容,如果未能解决你的问题,请参考以下文章
如何从 IntelliJ IDEA 向远程 Spark 集群提交代码