PySpark中不存在方法showString([class java.lang.Integer,class java.lang.Integer,class java.lang.Boolean])

PySpark中不存在方法showString([class java.lang.Integer,class java.lang.Integer,class java.lang.Boolean]),java,apache-spark,pyspark,apache-spark-sql,py4j,Java,Apache Spark,Pyspark,Apache Spark Sql,Py4j,以下是代码片段: 从pyspark导入SparkContext 从pyspark.sql.session导入SparkSession sc=SparkContext() 火花=火花会话(sc) d=spark.read.format(“csv”).option(“header”,True)。option(“inferSchema”,True)。load('file.csv')) d、 show() 在遇到错误后: An error occurred while calling o163.sho

以下是代码片段:

从pyspark导入SparkContext
从pyspark.sql.session导入SparkSession
sc=SparkContext()
火花=火花会话(sc)
d=spark.read.format(“csv”).option(“header”,True)。option(“inferSchema”,True)。load('file.csv'))
d、 show()
在遇到错误后:

An error occurred while calling o163.showString. Trace:
py4j.Py4JException: Method showString([class java.lang.Integer, class java.lang.Integer, class java.lang.Boolean]) does not exist

所有其他方法都很有效。尝试了很多研究,但都没有成功。在spark shell控制台上,任何潜在客户都将受到高度赞赏,请输入变量名称并查看数据类型。 另一种方法是,您可以在变量名后设置两个制表符。它将显示可应用的必要功能。 DataFrame对象的示例

res23: org.apache.spark.sql.DataFrame = [order_id: string, book_name: string ... 1 more field]

这是Spark版本不匹配的指示器
show
方法只接受两个参数:

def show(self,n=20,truncate=True):
它有三个论点:

def show(self,n=20,truncate=True,vertical=False):
在您的例子中,Python客户端似乎调用后一个,而JVM后端使用旧版本

由于
SparkContext
初始化在2.4中经历了重大更改,这将导致
SparkContext上出现故障。\uuuu init\uuuu
,因此您可能使用:

  • 2.3.x Python库
  • 2.2.x罐
通过直接从会话中检查版本,可以确认Python:

sc.version
与JVM相比:

sc.\u jsc.version()

像这样的问题通常是由于配置错误的
PYTHONPATH
(直接或通过在每个现有Spark二进制文件的顶部安装
PySpark
)或
Spark\u HOME

谢谢。它向我展示了可以应用的“显示”功能。但问题是参数传递我重新检查了配置设置,一切正常。SparkContext版本为2.1.1,spark版本为2.3.0。方法showString()不能接受3个参数。我还能做些什么?问题似乎是不兼容。请检查
PYTHONPATH
SPARK\u HOME
环境变量-这些变量是否指向同一安装?您是否单独安装了PySpark和Spark二进制文件?我正在使用Anaconda jupyter notebook for python,它的路径是:C:\Users\user\u name\Anaconda3,Spark\u HOME设置为:C:\Spark\Spark-2.3.0-bin-hadoop2.7
conda列出PySpark
返回什么?它返回:C:\Users\user\u name\Anaconda3。那么您是否建议我的Spark\u HOME是是否也设置为相同?