当前位置: 首页 > 面试题库 >

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

查学文
2023-03-14
问题内容

这是代码段:

from pyspark import SparkContext
from pyspark.sql.session import SparkSession

sc = SparkContext()
spark = SparkSession(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版本不匹配。在Spark
2.3

show方法之前,仅接受两个参数:

def show(self, n=20, truncate=True):

从2.3开始,它需要三个参数:

def show(self, n=20, truncate=True, vertical=False):

在您的情况下,Python客户端似乎调用了后者,而JVM后端使用了较旧的版本。

由于SparkContext初始化在2.4中进行了重大更改,这将导致上的失败SparkContext.__init__,因此您可能使用:

  • 2.3.x Python库。
  • 2.2.x JAR。

您可以通过直接从会话(Python)中检查版本来确认这一点:

sc.version

与JVM:

sc._jsc.version()

诸如此类的问题通常是由于配置错误PYTHONPATH(直接或通过在现有的最高Spark二进制文件上pip安装安装PySpark)或导致的SPARK_HOME



 类似资料:
  • 我正在尝试使用pyspark学习以下hello word级别的示例,例如下面的示例。我得到了一个“MethodisBarrier([])不存在”错误,代码下面包含了完整的错误。 尽管如此,当我在命令行中直接启动pyspark会话并键入相同的代码时,它工作得很好: 我的设置: windows 10 Pro x64

  • 我想验证我的表单输入,但它抛出我这个错误在我的Laravel.log文件 生产错误:消息为“Method[validateString]不存在”的异常“BadMethodCallException”在C:\xamplep\htdocs\testing\vendor\laravel\framework\src\Illuminate\Validation\Validator.php中:2405 这是我

  • 我正在尝试使用此代码使用代理版本0.10测试kafka流。这只是一个打印主题内容的简单代码。还没什么大不了的!但是,由于某种原因内存不足(VM中的10GB RAM)!代码: 运行火花提交: 不幸的是,结果是: java.lang.OutOfMemoryError:Java堆空间 我假设Kafka每次应该带一小部分数据来避免这个问题,对吗?那么,我做错了什么?

  • 我正试图修改PySpark dataframe中的列值,如下所示: 这将生成以下异常: 调用O435时出错。跟踪:py4j.py4jException:Method或([class java.lang.string])在py4j.reflection.reflectionEngine.getMethod(reflectionEngine.java:318)在py4j.reflection.refl

  • 首先,是的,我读过这个线程Protobuf-Missing toByteArray()?,这并没有解决我的问题。 我按照这里描述的这个确切步骤安装了原型:https://gist.github.com/sofyanhadia/37787e5ed098c97919b8c593f0ec44d8. 我的原型文件非常简单: 我转到我的proto路径,并使用以下方法对其进行proto编译: 该类确实是创建的

  • 我有一个非常奇怪的问题。当我提交表单时,它会引发服务器端验证错误。 BadMethodCallException 方法[validation必需]不存在。 我的控制器: 控制器在方法