笔记本vs火花提交

时间:2018-12-25 12:12:50

标签: apache-spark pyspark pyspark-sql

我是PySpark的新手。

我正在Jupyter Notebook中运行一个脚本(主要是创建一个tfidf并使用它预测9个分类列)。手动执行所有单元时,大约需要5分钟。从spark-submit运行相同的脚本时,大约需要45分钟。发生什么事了?

如果我从终端使用python运行代码,也会发生同样的事情(多余的时间)。

我还将脚本中的配置设置为

conf = SparkConf().set('spark.executor.memory', '45G').set('spark.driver.memory', '80G').set('spark.driver.maxResultSize', '20G')

感谢您的帮助。预先感谢。

1 个答案:

答案 0 :(得分:2)

运行Spark代码有多种方式,就像您提到的Notebook,Pyspark和Spark提交很少。

  1. 关于Jupyter Notebook或pyspark shell。

当您在Jupyter笔记本电脑或pyspark shell中运行代码时,它可能已经为执行程序内存,驱动程序内存,执行程序核心等设置了一些默认值。

  1. 关于火花提交。

但是,当您使用Spark提交时,默认情况下这些值可能会有所不同。因此,最好的方法是在使用“ spark-submit”实用程序提交pyspark应用程序时将这些值作为标志传递。

  1. 关于创建的配置对象,可以在创建Spark上下文(sc)时通过。
  

sc = SparkContext(conf = conf)

希望这会有所帮助。

此致

Neeraj