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

使用Apache Avro读取Parquet文件报java.lang.NoSuchFieldError: NULL_VALUE错误如何解决

这个java.lang.NoSuchFieldError: NULL_VALUE属于典型的Parquet版本依赖冲突问题。你单独运行Scala文件正常,是因为单文件运行时类路径下只有一套兼容的Parquet与Avro依赖,集成到项目后出现多版本冲突:Alpakka AvroParquet 3.0.3依赖的Parquet版本,和你本地引入的raphtory.jar中内置的Parquet版本不兼容,低版本Parquet的AvroSchemaConverter类不存在NULL_VALUE静态字段,运行时类加载器优先加载了低版本类就会触发该报错。

解决步骤如下:

  • 先排查当前项目的依赖版本:在项目根目录执行sbt dependencyTree | grep parquet,筛选所有org.apache.parquet相关依赖的版本,确认不同组件拉取的版本差异。
  • 强制统一Parquet版本:在build.sbt中添加版本锁定配置,Alpakka 3.0.3适配的Parquet版本为1.12.x,直接锁定即可:
dependencyOverrides ++= Seq(
  "org.apache.parquet" % "parquet-avro" % "1.12.0",
  "org.apache.parquet" % "parquet-hadoop" % "1.12.0"
)
  • 排除冗余依赖:如果确认是raphtory.jar内置了旧版Parquet,可以选择两种方案:一是将raphtory内部的Parquet依赖调整为provided scope后重新打包jar,二是在Alpakka依赖中排除传递引入的Parquet组件,改用raphtory内置的版本。
  • 额外校验:如果调整依赖后仍然报错,确认你读取的Parquet文件的生成版本,要和项目中最终使用的Parquet版本保持一致,避免读写版本不兼容的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:06:03