我正在尝试更改spark 1.6.0中Dataframe列列表的类型。然而,迄今为止发现的所有示例只允许对单个列(df.withcolumn)或Dataframe中的所有列进行强制转换:
val castedDF = filteredDf.columns.foldLeft(filteredDf)((filteredDf, c) => filteredDf.withColumn(c, col(c).cast("String")))
对于Dataframe中的列列表,有没有有效的批处理方法?
2uluyalo1#
这没有错 withColumn *但你可以用 select 如果您愿意:
withColumn
select
import org.apache.spark.sql.functions col val columnsToCast: Set[String] val outputType: String = "string" df.select(df.columns map ( c => if(columnsToCast.contains(c)) col(c).cast(outputType) else col(c) ): _*)
1条答案
按热度按时间2uluyalo1#
这没有错
withColumn
*但你可以用select
如果您愿意:withColumn
.