Reg*_*sor 8 python apache-spark pyspark
我用python 3.6安装了pyspark,我使用jupyter notebook来初始化一个spark会话.
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("test").enableHieSupport.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
运行没有任何错误
但是我写道,
df = spark.range(10)
df.show()
Run Code Online (Sandbox Code Playgroud)
它抛出了一个错误 - >
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)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我要面对这个问题.
如果我做,
from pyspark import SparkContext
sc = SparkContext()
print(sc.version)
'2.1.0'
Run Code Online (Sandbox Code Playgroud)
我很高兴,因为我和我的pyspark一直有同样的问题,我找到了"解决方案".就我而言,我在Windows 10上运行.经过Google的多次搜索后,我找到了设置所需环境变量的正确方法:
PYTHONPATH=$SPARK_HOME$\python;$SPARK_HOME$\python\lib\py4j-<version>-src.zip
Py4J源包的版本在Spark版本之间发生了变化,因此,请检查Spark中的内容并相应地更改占位符.有关该过程的完整参考,请查看此站点:如何在本地安装spark
我认为spark.range应该返回一个 RDD 对象。因此,show这不是您可以使用的方法。请改用collect或take。
如果您想使用,也可以替换spark.range为。sc.rangeshow