在 intelliJ 上添加对远程 spark 的依赖

Add dependency to remote spark on intelliJ

我 运行 远程使用 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: Lost task 0.0 in stage 0.0 (TID 0, 172.16.248.156): java.lang.ClassNotFoundException: com.databricks.spark.avro.AvroRelation$$anonfun$buildScan$$anonfun at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ```

我也试过 setJars 属性 的 conf class。任何帮助将不胜感激。

您需要将依赖项添加到 build.sbt 文件中,以便 IntelliJ 可以对其进行编译。如果您将它作为参数添加到 spark-submit 那么您可以将依赖项设置为 prodived 否则您需要使用 sbt-assembly 或类似的插件将它打包到您的 jar 文件中。

将以下行添加到您的 build.sbt 文件中,如果启用了自动导入,Intellij 将下载依赖项。如果未启用自动导入,请关闭项目并再次导入或使用 SBT 工具中的刷新按钮 window。

libraryDependencies += "com.databricks" %% "spark-avro" % "2.0.1" % "provided"