【问题标题】:Spark DataFrame xml change column nameSpark DataFrame xml更改列名
【发布时间】:2017-08-24 09:31:36
【问题描述】:

我尝试使用 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 ->(此选项不会改变任何内容)。

感谢任何帮助!

【问题讨论】:

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


    【解决方案1】:

    没有捷径可做,因为它不允许更改低于 1 级以上的架构。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2015-06-05
      • 2018-05-14
      • 1970-01-01
      • 2019-07-31
      相关资源
      最近更新 更多