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

Azure Databricks中PySpark无法用XSD验证XML文件的问题求助

修复Spark XML读取时的XSD验证路径错误

错误原因

Spark XML库的rowValidationXSDPath参数要求传入executor节点可直接访问的本地路径,你直接使用DBFS路径(dbfs:/mnt/books.xsd)时,executor会将其当作本地磁盘路径查找,导致找不到文件,触发解析错误。

解决方案

Databricks集群默认会把DBFS挂载到节点的/dbfs/目录下,只需将DBFS路径转换为本地挂载路径即可解决问题:

修改后的读取代码

# 将DBFS路径转换为本地挂载路径
local_xsd_path = xsd_Path.replace("dbfs:/", "/dbfs/")

df = (spark.read
    .format("xml")
    .option("rowTag", "book")
    .option("rowValidationXSDPath", local_xsd_path)
    .load(xmlPath))
df.printSchema()

备选方案(适用于无DBFS自动挂载场景)

如果集群未自动挂载DBFS,可通过Spark的addFile方法将XSD文件分发到所有executor的临时目录:

# 分发XSD文件到所有executor
spark.sparkContext.addFile(xsd_Path)

# 获取executor本地的文件路径
import os
local_xsd_path = os.path.join(spark.sparkContext.getLocalDir(), "books.xsd")

df = (spark.read
    .format("xml")
    .option("rowTag", "book")
    .option("rowValidationXSDPath", local_xsd_path)
    .load(xmlPath))
df.printSchema()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:13:13