我尝试在我的笔记本中配置一个spark上下文,但出现了一些问题,我这样做了:
from pyspark.sql import SparkSession
from pyspark import SparkContext, SparkConf
if sc==sc:
sc.stop()
if spark==spark:
spark.stop()
conf = SparkConf()
conf = conf.setAppName(appName)
conf = conf.set("spark.master", master)
conf = conf.set("spark.python.worker.memory", "1042M")
spark.stop()
session_builder = SparkSession.builder
session_builder = session_builder.master(master)
spark = session_builder.getOrCreate()这给了我一个错误:
Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.lang.IllegalStateException: Cannot call methods on a stopped SparkContext.我们可以更改jupyter笔记本中spark的配置吗?又是如何做到的?
我使用的是带有独立集群的spark的最新版本。
根据我所做的提议操作:

这似乎意味着已经重新创建了spark上下文,但是sparSession不再链接到新的sc。
发布于 2018-01-25 17:44:00
从上面的代码中,我理解的是sc是你的sparkcontext,spark是你的sparkSession变量。您正在停止它们,然后在已经终止的会话上再次使用spark.stop()。取而代之的是:
from pyspark import SparkConf, SparkContext
sc.stop()
conf = (SparkConf()
.setMaster("local")
.setAppName("App_name")
.set("spark.executor.memory", "1g"))
sc = SparkContext(conf = conf)您可以在此处找到文档:Pyspark
如果你已经用pyspark配置了你的笔记本,你不需要停止一个spark上下文并创建一个新的上下文。取而代之的是,你可以在触发上下文时使用sc。您可以通过spark-submit将额外的配置作为命令行参数进行传递。您可以在此处参考配置文档:Pyspark Configuration
发布于 2019-01-17 18:12:22
仅在设置SparkSession时使用config选项(从2.4开始)
MAX_MEMORY = "5g"
spark = SparkSession \
.builder \
.appName("Foo") \
.config("spark.executor.memory", MAX_MEMORY) \
.config("spark.driver.memory", MAX_MEMORY) \
.getOrCreate()https://stackoverflow.com/questions/48438281
复制相似问题