开发者社区> 问答> 正文

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

这是片段:

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

展开
收起
社区小助手 2018-12-10 16:38:00 3780 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    这是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。
    您可以通过直接从会话中检查版本来确认:

    sc.version
    与JVM:

    sc._jsc.version()
    像这样的问题通常是由于配置错误PYTHONPATH(直接或通过使用pip安装PySpark在现有的顶级Spark二进制文件上)或SPARK_HOME。

    2019-07-17 23:19:25
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载