使用pyspark创建spark数据帧时出现Py4J错误

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)

use*_*hrn 8

我很高兴,因为我和我的pyspark一直有同样的问题,我找到了"解决方案".就我而言,我在Windows 10上运行.经过Google的多次搜索后,我找到了设置所需环境变量的正确方法: PYTHONPATH=$SPARK_HOME$\python;$SPARK_HOME$\python\lib\py4j-<version>-src.zip Py4J源包的版本在Spark版本之间发生了变化,因此,请检查Spark中的内容并相应地更改占位符.有关该过程的完整参考,请查看此站点:如何在本地安装spark


zin*_*rim 7

为了我

import findspark
findspark.init()

import pyspark
Run Code Online (Sandbox Code Playgroud)

解决了问题


Ste*_*ven 0

我认为spark.range应该返回一个 RDD 对象。因此,show这不是您可以使用的方法。请改用collecttake

如果您想使用,也可以替换spark.range为。sc.rangeshow