无法运行pyspark

Der*_*III 18 python pyspark

我在Windows上安装了Spark,但我无法启动pyspark.当我输入时c:\Spark\bin\pyspark,我收到以下错误:

Python 3.6.0 | Anaconda自定义(64位)| (默认情况下,2016年12月23日,11:57:41)win32上的[MSC v.1900 64 bit(AMD64)]输入"help","copyright","credits"或"license"以获取更多信息.回溯(最近一次调用最后一次):文件"c:\ Spark\bin ..\python\pyspark\shell.py",第30行,在导入pyspark文件"c:\ Spark\python\pyspark__init __.py",第44行,从pyspark.context导入SparkContext文件"c:\ Spark\python\pyspark\context.py",第36行,从pyspark.java_gateway导入launch_gateway文件"c:\ Spark\python\pyspark\java_gateway.py",第31行,从py4j.java_gateway导入java_import,JavaGateway,GatewayClient文件"",第961行,在_find_and_load文件"",第950行,在_find_and_load_unlocked文件"",第646行,在_load_unlocked文件"",第616行,在_load_backward_compatible在文件"C:\ Users\Eigenaar\Anaconda3\lib\pydoc.py"中的文件"c:\ Spark\python\lib\py4j-0.10.4-src.zip\py4j\java_gateway.py",第18行,第62行,在导入pkgutil文件"C:\ Users\Eigenaar\Anaconda3\lib\pkgutil.py",第22行,在ModuleInfo = namedtuple('ModuleInfo','module_finder name ispkg')文件"c:\ Spark\python\pyspark\serializers.py",第393行,在namedtuple cls = _old_namedtuple(*args,**kwargs )TypeError:namedtuple()缺少3个必需的仅限关键字参数:'verbose','rename'和'module'

我在这做错了什么?

小智 29

Spark 2.1.0不支持python 3.6.0.要解决这个问题,请在anaconda环境中更改python版本.在你的anaconda环境中运行以下命令

conda create -n py35 python=3.5 anaconda
activate py35
Run Code Online (Sandbox Code Playgroud)


kar*_*son 20

Spark <= 2.1.0与Python 3.6不兼容.请参阅此问题,该问题还声称将在即将发布的Spark版本中修复此问题.


Ind*_*our 10

我使用pythons脚本中的一个更改解决了这个问题.

我在python脚本中的一段代码下面写了一个名为serializers.py的位置c:\your-installation-dir\spark-2.0.2-bin-hadoop-2.7\python\pyspark\,位于以下行,在第381行替换.

cls = _old_namedtuple(*args, **kwargs, verbose=False, rename=False, module=None)
Run Code Online (Sandbox Code Playgroud)

然后运行pyspark到你的命令行这将工作..