Databricks中无法读写XML文件:scala/$less$colon$less类未找到错误
解决Databricks读取XML文件时的scala/$less$colon$less类缺失错误
这个错误是因为Spark XML依赖包的Scala版本与Databricks集群的Scala版本不兼容导致的,可通过以下步骤解决:
- 确认集群Scala版本:在Databricks集群详情页面查看当前使用的Scala版本(常见为2.12或2.13)
- 安装匹配版本的Spark XML依赖:
- 若Scala版本为2.12,在集群的库管理界面添加Maven坐标:
com.databricks:spark-xml_2.12:0.16.0(可选择兼容集群Spark版本的最新依赖版本) - 若Scala版本为2.13,使用Maven坐标:
com.databricks:spark-xml_2.13:0.16.0
- 若Scala版本为2.12,在集群的库管理界面添加Maven坐标:
- 重启集群后重新执行原代码
也可以在代码中临时加载对应依赖(仅当前会话生效):
%python spark.conf.set("fs.azure.account.key.XXXXXX.dfs.core.windows.net","XXXXXXXXXXXXX") # 添加对应Scala版本的XML依赖包 sc.addPyFile("https://repo1.maven.org/maven2/com/databricks/spark-xml_2.12/0.16.0/spark-xml_2.12-0.16.0.jar") df = spark.read \ .format("com.databricks.spark.xml") \ .option("rootTag", "catalog") \ .option("rowTag", "book") \ .load('dbfs:/FileStore/tables/sample.xml')
注意:上述Jar包路径需与集群的Scala版本完全匹配。
内容的提问来源于stack exchange,提问作者Gouri Mahapatra
相关产品推荐
相关产品推荐

