You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下PySpark调用df.show()遇ShowString错误求助

解决Windows 11下Spark 3.5 + Java 17环境中df.show()的ShowString错误

排查与修复步骤:

  • 检查JAVA_HOME路径合法性
    Windows下Spark对路径敏感,必须确保JAVA_HOME指向纯英文无空格的路径(比如C:\Java\jdk-17,而非C:\Program Files\Java\jdk-17)。打开命令行执行echo %JAVA_HOME%和java -version,确认路径无特殊字符且Java版本为17。

  • 统一编码配置
    Windows控制台默认编码为GBK,与Java 17默认的UTF-8编码冲突会触发ShowString错误。在spark/conf目录下复制spark-defaults.conf.template并重命名为spark-defaults.conf,添加以下配置:

    spark.driver.extraJavaOptions -Dfile.encoding=UTF-8
    spark.executor.extraJavaOptions -Dfile.encoding=UTF-8
    
  • 对齐PySpark与Spark版本
    虚拟环境中安装的PySpark版本必须和本地Spark版本完全一致(比如Spark 3.5.0对应pyspark==3.5.0)。执行pip show pyspark查看版本,不一致则用pip install pyspark==3.5.0重新安装。

  • 临时替代方案
    若上述方法无效,可暂时用print(df.toPandas())替代df.show(),绕过控制台输出的编码问题(注意大数据量下效率较低)。

  • 补全winutils依赖
    Windows下Spark依赖winutils.exe模拟Hadoop文件系统操作,需下载与Spark匹配的Hadoop版本对应的winutils(Spark 3.5对应Hadoop 3.3.x),放入Spark的bin目录,并配置HADOOP_HOME环境变量指向Spark安装目录。

内容的提问来源于stack exchange,提问作者Rpilli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:37:03