首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PySpark + jupyter notebook

PySpark + jupyter notebook
EN

Stack Overflow用户
提问于 2018-01-25 16:11:26
回答 2查看 5.6K关注 0票数 0

我尝试在我的笔记本中配置一个spark上下文,但出现了一些问题,我这样做了:

代码语言:javascript
复制
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()

这给了我一个错误:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2018-01-25 17:44:00

从上面的代码中,我理解的是sc是你的sparkcontext,spark是你的sparkSession变量。您正在停止它们,然后在已经终止的会话上再次使用spark.stop()。取而代之的是:

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2019-01-17 18:12:22

仅在设置SparkSession时使用config选项(从2.4开始)

代码语言:javascript
复制
MAX_MEMORY = "5g"

spark = SparkSession \
    .builder \
    .appName("Foo") \
    .config("spark.executor.memory", MAX_MEMORY) \
    .config("spark.driver.memory", MAX_MEMORY) \
    .getOrCreate()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48438281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档