【问题标题】:How to write Pyspark DataFrame to XML Format?如何将 Pyspark DataFrame 写入 XML 格式?
【发布时间】:2022-11-06 04:16:45
【问题描述】:

我正在研究一个 Glue ETL 作业,它基本上读取 Pyspark 中的数据框,并且应该以 XML 格式输出数据。 我已经搜索了很多解决方案,代码在如下所示的特定写入语句中失败:

df.write.format('com.databricks.spark.xml').options(rowTag='book', rootTag='books').save('newbooks.xml')

我目前使用的 Glue 版本是 Glue 3.0 - Spark 3.1、Scala 2 和 Python 3。 由于我正在尝试使用火花-XML我尝试过的库包括以下内容罐子作为家属在里面胶水脚本:

spark-xml_2.10-0.3.5,
spark-xml_2.11-0.7.0,
spark-xml_2.12-0.14.0,
spark-xml_2.13-0.14.0

我在不同版本中看到的不同错误如下:

An error occurred while calling o92.save. java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction0$mcD$sp
An error occurred while calling o95.save. java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.mapred.DirectOutputCommitter not found

调用o95.save. scala/$less$colon$less 时出错

我发现其他人之前发布了一个类似的问题,并尝试了这些方法,但它们似乎不再起作用了。最近有人遇到过类似的问题吗?如果是的话,你能解释一下这个决议吗?

【问题讨论】:

    标签: python apache-spark pyspark aws-glue apache-spark-xml


    【解决方案1】:

    首先看看你的 Spark 的 Scala 版本是什么。 如果是2.11然后使用 spark-xml_2.11-0.7.0 或者如果是2.12然后使用 spark-xml_2.12-0.14.0 其余的也一样。

    现在 spark-xml 也具有与其他 jar 的依赖关系。尝试将它与您的 spark-xml jar 一起使用。

    1. commons-io 版本 - 2.11.0
    2. TXW2 版本 - 3.0.2
    3. xmlschema-core -2.3.0

      笔记- 您也可以尝试使用不同版本的上述依赖 jar。 jars 版本适用于火花-xml_2.12-0.14.0

      希望这会有所帮助。

      参考 - https://github.com/databricks/spark-xml/blob/master/build.sbt

    【讨论】:

      猜你喜欢
      • 2016-09-21
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2020-05-20
      • 1970-01-01
      相关资源
      最近更新 更多