笔记本与火花提交

Notebook vs spark-submit

我是 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')

感谢任何帮助。提前致谢。

有多种方法可以运行 Spark 代码,就像您提到的几个 Notebook、Pyspark 和 Spark-submit。

  1. 关于 Jupyter Notebook 或 pyspark shell。

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

  1. 关于火花提交。

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

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

sc = SparkContext(conf=conf)

希望对您有所帮助。

此致,

尼拉吉