我已经用 python 3.6 安装了 pyspark,我正在使用 jupyter notebook 来初始化 spark 会话。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("test").enableHieSupport.getOrCreate()
运行没有任何错误
但我写,
df = spark.range(10)
df.show()
它抛出一个错误 –>
Py4JError: An error occurred while calling o54.showString. Trace:
py4j.Py4JException: Method showString([class java.lang.Integer, class java.lang.Integer, class java.lang.Boolean]) does not exist
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326)
at py4j.Gateway.invoke(Gateway.java:272)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:214)
at java.lang.Thread.run(Thread.java:745)
我不知道为什么我会遇到这个问题。
如果我做,
from pyspark import SparkContext
sc = SparkContext()
print(sc.version)
'2.1.0'
原文由 Regressor 发布,翻译遵循 CC BY-SA 4.0 许可协议
我现在很高兴,因为我的 pyspark 遇到了完全相同的问题,并且我找到了“解决方案”。就我而言,我在 Windows 10 上运行。通过 Google 进行多次搜索后,我找到了设置所需环境变量的正确方法:
PYTHONPATH=$SPARK_HOME$\python;$SPARK_HOME$\python\lib\py4j-<version>-src.zip
Py4J 源包的版本在 Spark 版本之间发生变化,因此,检查您的 Spark 中有什么并相应地更改占位符。有关该过程的完整参考,请查看此站点: how to install spark locally