Spark 2.0 设置罐子

Posted

技术标签:

【中文标题】Spark 2.0 设置罐子【英文标题】:Spark 2.0 set jars 【发布时间】:2017-01-18 15:16:13 【问题描述】:

我正在 play-scala 应用程序中从 1.6 升级到 spark 2.0,但不太确定如何设置我想要的 jar 文件。以前会定义一个 SparkConf,我可以调用的方法之一是 setJars,它允许我指定我想要的所有 jar 文件。现在我正在使用 SparkSession 构建器来构建我的 spark conf 和 spark 上下文,我没有看到任何类似的方法来指定 jar 文件?我该怎么做?

这是我之前创建 sparkconf 的方式:

val sparkConf = new SparkConf().setMaster(sparkMaster).setAppName(sparkAppName).
  set("spark.yarn.jar", "hdfs:///user/hadoop/spark-assembly-1.6.1-hadoop2.7.2.jar").
  set("spark.eventLog.dir", "hdfs:///var/log/spark/apps").
  set("spark.eventLog.enabled", "true").
  set("spark.executorEnv.JAVA_HOME", "/usr/lib/jvm/jre-1.8.0-openjdk").
  setJars(Seq(
    "ALL JAR FILES LISTED HERE"
  ))

我可以使用 sparksession builder 来完成与“setJars”相同的事情吗?

【问题讨论】:

【参考方案1】:

可以使用.config(key, value)方法设置spark.jars

SparkSession.builder
 .appName(sparkAppName)
 .master(sparkMaster)
 .config("spark.jars", commaSeparatedListOfJars)
 .config(/* other stuff */)
 .getOrCreate()

【讨论】:

很高兴听到 - 请接受和/或投票以向未来的读者表明这一点。 当我使用它时,我似乎无法给出 jar 的路径。我无法在我的情况下使用 maven

以上是关于Spark 2.0 设置罐子的主要内容,如果未能解决你的问题,请参考以下文章

在 Oozie-Spark 动作中添加多个罐子

包装像 pyspark 的罐子

装配,包括我的罐子

我们如何在 SPARK 2.2.0 中将外部表转换为托管表?

Spark Java 错误:大小超过 Integer.MAX_VALUE

使用 s3a 在驱动程序和执行程序中获取火花罐