我是Spark的新手,我正在尝试通过参考以下网站来安装PySpark。
http://ramhiser.com/2015/02/01/configuring-ipython-notebook-support-for-pyspark/
我尝试安装两个预构建的软件包,并通过SBT构建Spark软件包。
当我尝试在IPython Notebook中运行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>
请注意,当我执行 spark-shell 命令
时,我收到了一个scala提示符更新
在朋友的帮助下,我可以通过更正.ipython / profile_pyspark / startup / 00-pyspark-setup.py文件的内容来修复与Spark程序集JAR相关的问题
我现在只有Spark Context变量的问题。更改标题以适当反映我当前的问题。
答案 0 :(得分:31)
在路径中使用pyspark后需要执行以下操作:
from pyspark import SparkContext
sc =SparkContext()
答案 1 :(得分:12)
一种解决方案是将pyspark-shell
添加到shell环境变量PYSPARK_SUBMIT_ARGS中:
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
python/pyspark/java_gateway.py 发生了变化,如果用户设置了PYSPARK_SUBMIT_ARGS变量,则需要PYSPARK_SUBMIT_ARGS包含pyspark-shell
。
答案 2 :(得分:9)
您必须创建SparkContext的实例,如下所示:
导入:
from pyspark import SparkContext
然后:
sc =SparkContext.getOrCreate()
注意:sc =SparkContext.getOrCreate()
效果不如sc =SparkContext()
。
答案 3 :(得分:5)
稍微改善一点。在python脚本文件的顶部添加以下内容。
#! /bin/python
from pyspark import SparkContext, SparkConf
sc =SparkContext()
# your code starts here
答案 4 :(得分:4)
这在Spark版本2.3.1中对我有用
SELECT *
FROM customers
WHERE SUBSTRING(UPPER(name), 2, 1) = 'A'
答案 5 :(得分:2)
我添加了Venu提供的以下行。
from pyspark import SparkContext
sc =SparkContext()
然后通过删除环境变量PYSPARK_SUBMIT_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
答案 6 :(得分:2)
我还遇到了Java gateway process exited before sending the driver its port number
错误消息。
我可以通过下载为Hadoop预构建的一个版本来解决这个问题(我使用了hadoop 2.4的版本)。由于我不使用Hadoop,我不知道为什么会改变某些东西,但它现在对我来说完美无缺......
答案 7 :(得分:2)
我在尝试通过PyCharm运行pySpark时遇到了类似的错误,我注意到在日志中,就在此错误之前我收到了此错误:
环境:未找到
我追溯到我没有Java家庭环境变量集的事实..所以我补充说 os.environ ['JAVA_HOME'] =“/usr/java/jdk1.7.0_67-cloudera”
到我的脚本(我知道这可能不是最好的地方) 并且错误发生了,我创建了我的spark对象
答案 8 :(得分:1)
我的Mac上的Spark是1.6.0,因此添加pyspark-shell
并没有解决问题。
对我有用的是遵循@karenyng给出的答案here
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
答案 9 :(得分:1)
在使用IBM Watson Studio Jupyter笔记本电脑时,我遇到了类似的问题,我通过以下方法解决了该问题,
!pip install pyspark
from pyspark import SparkContext
sc = SparkContext()
答案 10 :(得分:0)
我遇到了同样的问题,问题是另一台笔记本正在运行(在最近的版本中,它们以绿色显示)。我选择并关闭其中一个,它工作正常。
很抱歉调用旧帖子但它可能对某人有帮助:)
答案 11 :(得分:0)
这个脚本对我有用(在linux中):
#!/bin/bash
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS="--pylab -c 'from pyspark import SparkContext; sc=SparkContext()' -i"
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
pyspark
当我呼叫pyspark
时,我假设“spark / bin”安装路径在PATH
变量中。如果没有,请致电/path/to/spark/bin/pyspark
。
答案 12 :(得分:0)
异常:Java 网关进程在向驱动程序发送其端口号之前退出
您需要在您的计算机中安装 Java8。