Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ipython notebook Spark context';sc&x27;未定义_Ipython Notebook_Pyspark - Fatal编程技术网

Ipython notebook Spark context';sc&x27;未定义

Ipython notebook Spark context';sc&x27;未定义,ipython-notebook,pyspark,Ipython Notebook,Pyspark,我是新的火花,我正试图安装PySpark通过参考以下网站 我试图通过SBT构建Spark包并安装预构建包 当我尝试在IPython笔记本中运行python代码时,我得到以下错误 NameError Traceback (most recent call last) <ipython-input-1-f7aa330f6984> in <module>() 1 # Check that

我是新的火花,我正试图安装PySpark通过参考以下网站

我试图通过SBT构建Spark包并安装预构建包

当我尝试在IPython笔记本中运行python代码时,我得到以下错误

    NameError                                 Traceback (most recent call last)
   <ipython-input-1-f7aa330f6984> in <module>()
      1 # Check that Spark is working
----> 2 largeRange = sc.parallelize(xrange(100000))
      3 reduceTest = largeRange.reduce(lambda a, b: a + b)
      4 filterReduceTest = largeRange.filter(lambda x: x % 7 == 0).sum()
      5 

      NameError: name 'sc' is not defined
<strong>Failed to find Spark assembly JAR.</strong>
<strong>You need to build Spark before running this program.</strong>
namererror回溯(最近一次调用)
在()
1#检查火花是否工作
---->2大范围=sc.并行化(X范围(100000))
3还原测试=大范围还原(λa,b:a+b)
4 filterReduceTest=largeRange.filter(lambda x:x%7==0).sum()
5.
NameError:未定义名称“sc”
在命令窗口中,我可以看到以下错误

    NameError                                 Traceback (most recent call last)
   <ipython-input-1-f7aa330f6984> in <module>()
      1 # Check that Spark is working
----> 2 largeRange = sc.parallelize(xrange(100000))
      3 reduceTest = largeRange.reduce(lambda a, b: a + b)
      4 filterReduceTest = largeRange.filter(lambda x: x % 7 == 0).sum()
      5 

      NameError: name 'sc' is not defined
<strong>Failed to find Spark assembly JAR.</strong>
<strong>You need to build Spark before running this program.</strong>
未能找到火花组件罐。
在运行此程序之前,您需要构建Spark。
注意,当我执行sparkshell命令时,我得到了一个scala提示

更新:

在一位朋友的帮助下,我能够通过更正.ipython/profile_pyspark/startup/00-pyspark-setup.py文件的内容来解决与Spark assembly JAR相关的问题


我现在只有Spark上下文变量的问题。将标题更改为适当地反映我当前的问题。

在路径中添加pyspark后,您需要执行以下操作:

from pyspark import SparkContext
sc =SparkContext()

我添加了Venu提供的以下行

from pyspark import SparkContext
sc =SparkContext()
然后,通过删除环境变量PYSPARK\u SUBMIT\u ARGS,解决了以下后续错误

C:\Spark\spark-1.3.1-bin-hadoop2.6\python\pyspark\java_gateway.pyc in launch_gateway() 77 callback_socket.close() 78 if gateway_port is None: 
---> 79 raise Exception("Java gateway process exited before sending the driver its port number") 
80 
81 # In Windows, ensure the Java child processes do not linger after Python has exited. Exception: Java gateway process exited before sending the driver its port number

我还遇到了
Java网关进程在向驱动程序发送端口号之前退出的错误消息


我可以通过下载一个为Hadoop预构建的版本来解决这个问题(我使用的是Hadoop 2.4版本)。由于我不使用Hadoop,我不知道这为什么会改变某些东西,但它现在对我来说完美无瑕……

一个解决方案是将
pyspark shell
添加到shell环境变量pyspark\u SUBMIT\u ARGS中:

export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"

中有一个更改,如果用户设置了PYSPARK_SUBMIT_ARGS变量,则需要PYSPARK_SUBMIT_ARGS includes
PYSPARK shell

我遇到了相同的问题,问题是另一个笔记本正在运行(在最新版本中,它们显示为绿色)。我选择并关闭了其中一个,效果很好


很抱歉调用旧线程,但它可能会帮助某些人:)

我的Mac上的Spark是1.6.0,因此添加
pyspark shell
并不能解决问题。 对我有效的是遵循@karenyng给出的答案

pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "")
if not "pyspark-shell" in pyspark_submit_args: pyspark_submit_args += " pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args

我试图通过PyCharm让pySpark工作时遇到了类似的错误,我在日志中注意到,就在这个错误之前,我遇到了这个错误:

环境:找不到

我追溯到我没有Java home环境变量集这一事实。。所以我补充说 os.environ['JAVA_HOME']=“/usr/JAVA/jdk1.7.0_67-cloudera”

我的剧本(我知道这可能不是最好的地方)
错误发生了,我创建了spark对象

只是稍微改进了一点。在python脚本文件的顶部添加以下内容

#! /bin/python
from pyspark import SparkContext, SparkConf
sc =SparkContext()

# your code starts here
这个脚本对我有用(在linux中):


要在调用时调用
pyspark
,我假设“spark/bin”安装路径位于
path
变量中。如果没有,请改为调用
/path/to/spark/bin/pyspark

您必须创建SparkContext的实例,如下所示:

进口:

from pyspark import SparkContext
然后:

sc =SparkContext.getOrCreate()

注意:
sc=SparkContext.getOrCreate()
sc=SparkContext()

效果更好,这在spark版本2.3.1中对我很有效

from pyspark import SparkContext
sc = SparkContext()

在使用IBM Watson Studio Jupyter笔记本电脑时,我遇到了一个类似的问题,我通过以下方法解决了这个问题:

!pip install pyspark
from pyspark import SparkContext
sc = SparkContext()

例外情况:Java网关进程在向驱动程序发送其端口号之前退出


您需要在计算机中安装Java8。

谢谢Venu。当我添加这些行时,我得到以下错误。C:\Spark\Spark-1.3.1-bin-hadoop2.6\python\pyspark\java\u gateway.pyc在launch\u gateway()77 callback\u socket.close()78如果gateway\u port为None:-->79在Windows中引发异常(“java gateway进程在发送驱动程序其端口号之前退出”)80 81,确保Java子进程在Python退出后不会停留。异常:Java网关进程在向驱动程序发送端口号之前退出不确定那里发生了什么,您能给我一点更完善的上下文吗,但我认为您可以通过添加一些ardentsIs使代码看起来更好spark 1.4中的这一更改?可能这就是为什么1.4在我启动时给了我错误,但是1.3.1从1.4.x开始就没有是。我想补充一些意见。事实上,
$SPARK\u HOME/bin/pyspark
有一种正式的方式来启动ipython或ipython笔记本电脑。对于1.4.x,您可以使用$SPARK_HOME/bin/pyspark启动ipython或ipython笔记本,检查bash脚本。PYSPARK\u DRIVER\u PYTHON=ipython$SPARK\u HOME/bin/PYSPARK PYSPARK\u DRIVER\u PYTHON=ipython PYSPARK\u DRIVER\u PYTHON\u OPTS='notebook'$SPARK\u HOME/bin/pysparkIMHO这是最好的解决方案。
SparkContext.getOrCreate()
是解决这个问题所需要的,我有。