0

我试图使用 DataBricks Spark XML 加载 XML 文件。我能够正确加载数据,但我需要更改其中一列的名称并将其作为单独的标签放在架构中。基本上,很少有标签需要生成为空值,而这些标签不会出现在数据中。(这些字段在 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 -> (这个选项不会改变任何东西)。

任何帮助表示赞赏!

4

1 回答 1

1

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

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

一旦有了简单的标签,然后使用 columnRenamed 或其他选项,您就可以更改数据类型并使用主键重新连接以创建原始数据框(但使用修改后的名称或类型)。

于 2018-04-12T19:33:57.677 回答