scala - Scala - 如何将列附加到保留原始列名的 DataFrame?
问题描述
我有一个基本的 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_
但我希望列名保持不变。但是,如果我不更改名称,则该列将被删除。所以重命名只是一个不太好的解决方法。
追加列时如何保留原始列名?
解决方案
据我所知,您不能在 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")
推荐阅读
- java - 向我的 RecyclerView 添加过滤/搜索
- c++ - 如何在 OpenCv c++ 中获取图像像素亮度和对比度?
- spring-integration - 使用网桥端点配置器的正确方法是什么?
- delphi - 如何在运行时创建 Tgrid
- screensharing - getDisplayMedia(获取可用选项列表)
- angular - 自定义导航栏在角度不起作用
- bit-manipulation - 确定进位时如何应用异或?
- ios - CollectionView 未按预期垂直显示
- java - Minecraft Java 1.12.2 服务器 Spigot 插件错误
- android - Android Studio 3.6 无法通过拖放放置布局