Scala-如何将一列添加到保留原始列名的DataFrame中?

时间:2018-09-27 15:29:04

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

我有一个包含所有数据的基本DataFrame和一些衍生的DataFrame,这些数据随后是我从基本DF进行分组,联接等创建的。

每次我想向最后一个包含最相关数据的DataFrame追加一列时,我都必须执行以下操作:

val theMostRelevantFinalDf = olderDF.withColumn("new_date_", to_utc_timestamp(unix_timestamp(col("new_date"))
  .cast(TimestampType), "UTC").cast(StringType)).drop($"new_date")

您可能会看到,我必须将原始列名更改为new_date_

但是我希望列名保持不变。 但是,如果我不更改名称,该列将被删除。因此,重命名只是一个不太好的解决方法。

追加列时如何保留原始列名?

1 个答案:

答案 0 :(得分:1)

据我所知,您无法在DataFrame转换中创建两个具有相同名称的列。我将新列重命名为较旧的名称,例如

val theMostRelevantFinalDf = olderDF.withColumn("new_date_", to_utc_timestamp(unix_timestamp(col("new_date"))
  .cast(TimestampType), "UTC").cast(StringType)).drop($"new_date").withColumnRenamed("new_date_", "new_date")