如何使用 Spark 高效开发?在我编辑代码打包后,spark-submit 太慢了

How do I develop efficiently with Spark? After I edit code and package, spark-submit is too slow

我目前的开发周期是在 IntelliJ 本地编辑代码,使用 sbt ~ package 自动打包成 jar,然后使用 rsync 命令自动复制到集群主节点一个循环。这一切都很可爱和流线型,但是当我 运行 spark-submit 时,我必须等待大约 10 到 20 秒才能开始看到我的代码输出。如果我想不断测试小变化的结果,这是一种极其缓慢的做事方式。

有没有办法重用 JVM、SparkContext 等,这样我就不必等待 spark-submit 从头开始​​重新启动一切?我正在使用 YARN。

为什么不在本地模式下进行开发,只有在集群上 运行 有更完整的东西可以测试时才这样做?

您可以使用

创建本地 Spark 上下文
val conf = new SparkConf().setMaster("local").setAppName("App")
val sc = new SparkContext(conf)

最后,最好的解决方案是 运行 scala spark shell 并在我从本地计算机连续 rsync 编辑的脚本上使用 :load