Spark DataFrame xml更改列名
Posted
技术标签:
【中文标题】Spark DataFrame xml更改列名【英文标题】:Spark DataFrame xml change column name 【发布时间】: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
我尝试了很多方法:-(我无法手动添加架构)。
-
withColumn.->(使用此选项我可以添加一个新列,但在根级别,我需要将其添加到明确的层次结构中。)
withColumnRenamed ->(此选项不会改变任何内容)。
感谢任何帮助!
【问题讨论】:
【参考方案1】:没有捷径可做,因为它不允许更改低于 1 级以上的架构。
因此,您可能会考虑将复杂标签分解为 1 级简单标签,包括用于识别和连接记录的主键。
一旦你有了简单的标签,然后使用 columnRenamed 或其他选项,你可以更改数据类型并使用主键返回以创建原始数据框(但使用修改后的名称或类型)。
【讨论】:
以上是关于Spark DataFrame xml更改列名的主要内容,如果未能解决你的问题,请参考以下文章
Spark 1.6:在 DataFrame 中使用转义的列名删除列
两个 Spark DataFrame 的简单连接因“org.apache.spark.sql.AnalysisException:无法解析列名”而失败
从 HDFS CSV 文件构建的 Spark Dataframe 中提取列名
如何从 Spark DataFrame 中删除列表中给出的多个列名?