如何将Spark数据框写入xml文件?

时间:2016-02-25 07:21:52

标签: scala apache-spark dataframe apache-spark-sql

示例:

scala> Frame.show()

|year| make|model|             comment|blank|
|2012|Tesla|    S|          No comment|    R|
|1997| Ford| E350|Go get one now th...|    L|
|2015|Chevy| Volt|                 Try|    M|

<item>
    <'year'>2012<'/year'>
    <'make'>Tesla<'/make'>
    <'model'>S<'/mode'>
</item>

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用spark-xml中的XML编写器:

val path: String = ???
df.rdd.write.format("com.databricks.spark.xml")
  .option("rootTag", "items")
  .option("rowTag", "item")
  .save(path)

如果由于某种原因它不能满足您的需求,您可以单独转储记录并saveAsTextFile

def dumpXML(row: Row): String = ???
df.rdd.map(dumpXML).saveAsTextFile(path)

您可以使用例如mapPartitions添加根元素。