Azure Databricks Spark XML 库 - 尝试读取 xml 文件

Posted

技术标签:

【中文标题】Azure Databricks Spark XML 库 - 尝试读取 xml 文件【英文标题】:Azure Databricks Spark XML Library - Trying to read xml files 【发布时间】:2019-03-08 16:20:55 【问题描述】:

我正在尝试创建一个 databricks 笔记本以从 Azure Data Lake 读取 xml 文件并转换为镶木地板。我从这里得到了 spark-xml 库 - [https://github.com/databricks/spark-xml]。我遵循了 github 中提供的示例,但无法使其正常工作。

df = (spark.read.format("xml")
  .option("rootTag","catalog") \
  .option("rowTag", "book") \
  .load("adl://mysandbox.azuredatalakestore.net/Source/catalog.xml"))


  Exception Details:

  java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class

  StackTrace: 

 /databricks/spark/python/pyspark/sql/readwriter.py in load(self, path, 
 format, schema, **options)
  164         self.options(**options)
  165         if isinstance(path, basestring):
  --> 166             return self._df(self._jreader.load(path))
  167         elif path is not None:
  168             if type(path) != list:

  /databricks/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in 
  __call__(self, *args)
  1255         answer = self.gateway_client.send_command(command)
  1256         return_value = get_return_value(
  -> 1257             answer, self.gateway_client, self.target_id, 
  self.name)
  1258 

我是否需要定义任何其他依赖项来解析 xml?感谢您的帮助。

【问题讨论】:

【参考方案1】:

呼,问题终于解决了。错误消息没有给出异常的任何细节,但问题在于 spark-xml 库与集群的 scala 版本之间的版本差异。我更新了库以匹配我的集群版本并解决了问题。希望它可以帮助遇到同样问题的人。

【讨论】:

以上是关于Azure Databricks Spark XML 库 - 尝试读取 xml 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 数据工厂的 Databricks 上运行 .Net spark 作业?

无法在 azure databricks 中使用 spark 读取 csv 文件

在 Azure Databricks 中编写 spark 数据框

无法使用 jdbc 和 spark 连接器从 databricks 集群连接到 Azure 数据库 for MySQL 服务器

如何使我的 Spark Accumulator 统计信息在 Azure Databricks 中可靠?

在 Azure Databricks 的集群 Spark Config 中设置数据湖连接