Spark SQL需借助spark-xml库读取XML:按Spark版本选对应依赖,用format("xml")及rowTag等option解析为DataFrame,注册视图后支持SQL查询,属性需加@前缀,嵌套字段自动转StructType。

Spark SQL本身不原生支持XML文件读取,需要借助第三方库(如Databricks的spark-xml)将XML解析为DataFrame后,才能用SQL操作。
这是最关键的一步。不同Spark版本需匹配对应版本的spark-xml库:
com.databricks:spark-xml_2.12:0.17.0(Scala 2.12)com.databricks:spark-xml_2.11:0.14.0
--packages参数自动下载(本地开发或集群提交都适用):spark-shell --packages com.databricks:spark-xml_2.12:0.17.0
使用format("xml")指定数据源类型,并通过option()设置关键参数:
<book>...</book>就设为"book"
true可自动推断字段类型(适合结构较规整的XML)"@",如@id表示id属性)val df = spark.read
.format("xml")
.option("rowTag", "book")
.option("inferSchema", "true")
.load("books.xml")将DataFrame注册为临时视图后,即可用标准Spark SQL语法查询:
df.createOrReplaceTempView("books")spark.sql("SELECT title, @category FROM books WHERE @category = 'fiction'").show()
@category),文本内容直接用字段名(如title)复杂XML常含嵌套结构或命名空间,需额外配置:
col("author.firstName")访问option("rowTag", "{http://example.com}book")或预处理移除命名空间.schema(mySchema)提升稳定性以上就是如何用Spark SQL读取XML文件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号