【问题标题】:jupyter notebook NameError: name 'sc' is not definedjupyter notebook NameError:未定义名称“sc”
【发布时间】:2016-07-21 22:27:31
【问题描述】:

我使用了jupyter notebook,pyspark,然后,我的第一个命令是:

rdd = sc.parallelize([2, 3, 4])

然后,它表明

NameError Traceback (most recent call last)
<ipython-input-1-c540c4a1d203> in <module>()
----> 1 rdd = sc.parallelize([2, 3, 4])

NameError: name 'sc' is not defined.

如何解决这个错误'sc'未定义。

【问题讨论】:

  • 你导入了SparkContext吗?目前尚不清楚您的 PySpark 内核是如何加载的。
  • 我用的是终端,先换到我的spark的根目录,然后在终端输入pyspark来加载spark。
  • PySpark 加载一个火花上下文。 Jupyter 不会,除非您设置它这样做
  • 我也有同样的问题,最后发现是因为python版本不对

标签: apache-spark pyspark jupyter


【解决方案1】:

你初始化SparkContext了吗?

你可以试试这个:

#Initializing PySpark
from pyspark import SparkContext, SparkConf

# #Spark Config
conf = SparkConf().setAppName("sample_app")
sc = SparkContext(conf=conf)

【讨论】:

  • 我像你说的那样行事。在我运行 sc = SparkContext(conf = conf) 之后,它显示:ValueError: Cannot run multiple SparkContexts;
  • 可能有其他 Spark 实例正在运行。我建议您终止所有会话并重试。
  • KartikKannapur 的建议解决了我的类似问题。谢谢,KartikKannapur!
【解决方案2】:

试试这个

import findspark
findspark.init()
import pyspark # only run after findspark.init()
from pyspark import SparkContext, SparkConf
# #Spark Config
conf = SparkConf().setAppName("sample_app")
sc = SparkContext(conf=conf)

myrdd = sc.parallelize([('roze', 60), ('Mary', 80), ('stella', 34)])

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2021-12-20
    • 2021-04-15
    相关资源
    最近更新 更多