Spark DataFrame xml更改列名

时间:2017-08-24 09:31:36

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

我试图使用DataBricks Spark XML加载XML文件。 我能够正确加载数据,但我需要更改其中一个列的名称,并将其作为模式中的单独标记。基本上,很少有标签需要生成为null,而这些标签不会出现在数据中。(这些字段位于XSD中)。

实施例: -

root
  First Tag
     Element Name
     Second Tag ( Tag To Change)
        Tag3
        Tag4

我需要改为

root
  First Tag
     Element Name
     Second Tag 
        Tag3
        Tag4
     Third Tag 
        Tag3
        Tag4

我尝试了很多方法: - (我无法手动添加架构)。

  1. withColumn.-> (使用此选项,我可以添加新列,但在根级别,我需要将其添加到明确的层次结构中。)
  2. withColumnRenamed - > (此选项不会改变任何内容)。
  3. 感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

这样做没有捷径,因为它不允许更改超过1级的架构。

因此,您可能会考虑将复杂标记分解为1级简单标记,包括用于标识和联接记录的主键。

获得简单标记后,使用columnRenamed或其他选项,您可以更改数据类型并使用主键重新连接以创建原始数据框(但具有已修改的名称或类型)。