我有一个包含所有数据的基本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_
但是我希望列名保持不变。 但是,如果我不更改名称,该列将被删除。因此,重命名只是一个不太好的解决方法。
追加列时如何保留原始列名?
答案 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")