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

PySpark 3.2.0将DataFrame写入TFRecords失败求助

解决PySpark写入TFRecords时的ClassNotFoundException问题

核心原因:版本不兼容

你当前使用的spark-tensorflow-connector-1.0.0-s_2.11.jar是基于Scala 2.11编译的,但PySpark 3.2.0默认依赖Scala 2.12,版本不匹配导致类加载失败。

分步解决办法

1. 下载对应版本的Connector Jar

选择与Spark 3.2.0、Scala 2.12兼容的spark-tensorflow-connector包(文件名通常包含s_2.12标识)。

2. 确保Jar包配置正确

方式一:SparkSession中指定绝对路径

用绝对路径配置spark.jars,避免相对路径找不到的问题:

spark = SparkSession.builder\
            .appName('stc-test')\
            .config('spark.jars', '/你的绝对路径/spark-tensorflow-connector-<对应版本号>-s_2.12.jar')\
            .getOrCreate()

方式二:启动PySpark时通过参数指定

直接在启动命令中加入--jars参数加载Jar包:

pyspark --jars /你的绝对路径/spark-tensorflow-connector-<对应版本号>-s_2.12.jar

方式三:将Jar包放入Spark默认jars目录

把下载好的Jar包复制到Spark安装目录下的jars文件夹,Spark启动时会自动加载该包,无需额外配置。

3. 验证Jar包是否加载成功

执行以下代码查看已加载的Jar包列表,确认目标Jar包在其中:

for jar in spark.sparkContext.listJars():
    print(jar)

4. 重新执行写入TFRecords代码

确认Jar包加载无误后,再次运行写入逻辑:

train_pdf.write.format('tfrecords').option('writeLocality', 'local').save("/tfrecords")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:47:37