使用 databricks 在 Spark(scala) 中生成具有属性和值的 XML

Posted

技术标签:

【中文标题】使用 databricks 在 Spark(scala) 中生成具有属性和值的 XML【英文标题】:Generate XML with attribute and value in Spark(scala) using databricks 【发布时间】:2018-02-22 18:39:26 【问题描述】:

我想在 scala spark 中从 CSV/DataFrame 创建一个嵌套 XML。我正在使用 Databricks spark-XML 库将 DataFrame 转换为 XML 格式。

我试图创建如下所示的输出,但无法实现

<rows> 
<row>
<name id=10>Mahashree</name>
</row>
</rows>

我已经尝试过 struct

"_VALUE":"Mahashree","_id":10

但结果如下

<rows> 
<row>
<name id=10 VALUE="Mahashree"></name>
</row>
</rows>

在 DataBricks 文档中,他们有用于转换嵌套 XML 但不转换为嵌套 XML 的文档。

<one>
    <two myTwoAttrib="BBBBB">two</two>
    <three>three</three>
</one>

在下面生成一个模式:

root
 |-- two: struct (nullable = true)
 |    |-- _VALUE: string (nullable = true)
 |    |-- _myTwoAttrib: string (nullable = true)
 |-- three: string (nullable = true)

任何人都可以通过属性帮助嵌套元素吗?

提前致谢

【问题讨论】:

【参考方案1】:

可以通过此处描述的两个选项“attributePrefix”和“valueTag”来实现: https://github.com/databricks/spark-xml

例如,如果添加到“id”的附加下划线,一切都必须没问题:

"_VALUE":"Mahashree","__id":10

并使用此类选项保存:

.option("attributePrefix", "__")
.option("valueTag", "_VALUE")

【讨论】:

以上是关于使用 databricks 在 Spark(scala) 中生成具有属性和值的 XML的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS 上为 Databricks 和 Snowflake 使用 Spark 连接器

如何使用 databricks-connect 在本地执行 Spark 代码?

在Databricks + Spark笔记本中使用curl

databricks、spark、scala,不能长时间使用 lag()

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

在 emr 集群上安装 com.databricks.spark.xml