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

Apache Spark xml从2.11迁移至2.12出现弃用警告 如何直接使用XmlReader

Spark XML 版本迁移适配方案

你遇到的废弃警告是spark-xml从0.13.0版本开始,移除了XmlDataFrameReader类下的xml()方法,要求直接使用XmlReader类实现XML读取逻辑,适配步骤如下:

1. 导入核心类

在代码头部引入XmlReader类:

import com.databricks.spark.xml.XmlReader

2. 改写原有读取逻辑

直接实例化XmlReader对象替代原有spark.read.format("xml")的写法,和你原有功能完全等价的实现代码如下:

val xmlDf: DataFrame = new XmlReader()
  .withOption("nullValue", "")
  .xml(spark, df.select("payload").map(x => x.getString(0)))

补充说明

  • 原有通过.option()设置的参数,现在统一使用.withOption()方法传入
  • 读取本地/HDFS XML文件的场景也可以用相同逻辑改写,只需把第二个参数替换为文件路径即可,示例:
// 读取XML文件场景示例
val xmlFileDf = new XmlReader()
  .withOption("rowTag", "item")
  .withOption("nullValue", "")
  .xml(spark, "hdfs:///path/to/your/file.xml")
  • 请确保项目已引入适配Scala 2.12的spark-xml依赖,参考配置:
    Maven依赖:
<dependency>
    <groupId>com.databricks</groupId>
    <artifactId>spark-xml_2.12</artifactId>
    <version>0.16.0</version>
</dependency>

SBT依赖:

libraryDependencies += "com.databricks" %% "spark-xml" % "0.16.0"

原系统警告提示:method xml in class XmlDataFrameReader is deprecated (since 0.13.0): Use XmlReader directly

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:39:01