笔记本与火花提交



我对PySpark很陌生。

我正在 Jupyter 笔记本中运行一个脚本(主要是创建一个 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上下文(sc)时传递。

sc = SparkContext(conf=conf)

希望这有帮助。

问候

尼拉杰

我遇到了同样的问题,但是为了初始化我的火花变量,我使用了这一行:

spark = SparkSession.builder.master("local[1]").appName("Test").getOrCreate()

问题在于"local[X]",相当于说 Spark 将在本地机器上、X 内核上进行操作。因此,您必须使用计算机上可用的内核数来优化 X。

要将其与纱线簇一起使用,您必须放置"纱线"。

这里列出了许多其他可能性 https://spark.apache.org/docs/latest/submitting-applications.html:

相关内容

  • 没有找到相关文章

最新更新