Notebook vs spark-submit

lU5*_*5er 1 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')

任何帮助表示赞赏。提前致谢。

nee*_*ani 6

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

  1. 关于 Jupyter Notebook 或 pyspark shell。

当您在 Jupyter notebook 或 pyspark shell 中运行代码时,它可能为执行程序内存、驱动程序内存、执行程序内核等设置了一些默认值。

  1. 关于火花提交。

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

  1. 关于您创建的配置对象可以在创建 Spark 上下文 (sc) 时传递。

sc = SparkContext(conf=conf)

希望这可以帮助。

问候,

尼拉吉

  • 抱歉很晚才接受答案。我仍然很困惑,想亲自动手。但现在事情似乎更清楚了。感谢您对这两个问题的帮助。只是一个附加组件,您能否添加一些有关 Spark-submit 与在 Spark-Shell 上运行它有何不同的技术观点? (2认同)