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

时间:2018-02-22 18:39:27

标签: xml scala apache-spark apache-spark-sql databricks

我想在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 个答案:

答案 0 :(得分:1)

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

例如,如果添加到另外的下划线到“id”:

,则一切都必须正常
{"_VALUE":"Mahashree","__id":10}

并保存以下选项:

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