我想重命名我在Seq中提供的 Dataframe 中的一些列。我使用以下方法:
def prefixColumns(dataframe: DataFrame, columnPrefix: String, cols: Seq[String]) : DataFrame = {
for (column <- dataframe.columns){
if(cols.contains(column)){
dataframe.withColumnRenamed(column, columnPrefix + "_" + column)
}
}
dataframe
}
并调用prefix(products, "products", Seq(col1,col2,col3,col4))
它只是将col4
重命名为products_col4
,其他列保持不变。
有人能给我一个在scala中实现这一点的方法吗?
我只想按原样重命名序列中提供的列和 Dataframe 的其他列。
1条答案
按热度按时间nbysray51#
你的函数没有重命名任何东西,因为
withColumnRenamed
不转换它被调用的对象。它返回一个新的对象,列被重命名。让我们检查一下:第一个
但您可以稍微调整一下函数,使其正常工作:
第一个
注意:另一种方法是像这样使用
select
。没有for循环: