小编Joo*_*ung的帖子

在Scala中创建SparkSession对象以在unittest和spark-submit中使用它们的最佳实践

我试图从DataFrame到DataFrame编写一个转换方法.而且我也想通过scalatest进行测试.

如您所知,在使用Scala API的Spark 2.x中,您可以按如下方式创建SparkSession对象:

import org.apache.spark.sql.SparkSession

val spark = SparkSession.bulider
     .config("spark.master", "local[2]")
     .getOrCreate()
Run Code Online (Sandbox Code Playgroud)

此代码适用于单元测试.但是,当我使用spark-submit运行此代码时,群集选项不起作用.例如,

spark-submit --master yarn --deploy-mode client --num-executors 10 ...
Run Code Online (Sandbox Code Playgroud)

不会创建任何执行者.

我发现当我删除config("master", "local[2]")上面的部分代码时会应用spark-submit参数.但是,没有主设置,单元测试代码不起作用.

我试图将spark(SparkSession)对象生成部分拆分为test和main.但是,有很多代码块需要火花,例如import spark.implicit,_spark.createDataFrame(rdd, schema).

有没有最好的做法来编写代码来创建spark对象来测试和运行spark-submit?

scala apache-spark spark-submit

7
推荐指数
1
解决办法
8961
查看次数

spark.yarn.executor.memoryOverhead 被弃用了吗?

spark.yarn.executor.memoryOverhead从 Spark 2.3.x 开始,running-on-yarn.html 文档中关于 about 的解释就消失了。

我发现了spark.yarn.am.memoryOverhead自 Spark 2.3.0 以来的新属性。但是,根据解释,它是 spark.yarn 的替代属性。驱动程序.memoryOverhead,而不是 spark.yarn。执行器.memoryOverhead。

我不能增加 spark executor 的 memoryOverhead 吗?还是Spark executor的内存模型变了?

我增加了 spark.yarn.executor.memoryOverhead 以防止由于超出内存限制而被 YARN 杀死。

hadoop apache-spark

5
推荐指数
0
解决办法
1388
查看次数

标签 统计

apache-spark ×2

hadoop ×1

scala ×1

spark-submit ×1