泛型函数以转换spark数据框列

时间:2019-07-15 11:55:34

标签: scala apache-spark typeclass

我编写了以下函数,该函数强制转换了spark数据框列,但我想使其使用类型化的函数:

def castCol(newName: String, previosuNmae: String, datatType: DataType): DataFrame = {
  df.withColumn(newName, col(previosuNmae).cast(datatType))

我想让它像这样:

def castCol[DataType](newName: String, previosuNmae: String): DataFrame = {
  df.withColumn(newName, col(previosuNmae).cast(DataType)) 

但这不起作用。 您知道谁将dataType作为类型而不是参数传递给函数

1 个答案:

答案 0 :(得分:0)

如何?

def castCol[T<:DataType](newColName: String, newColType:T, previousColName: String): DataFrame = 
    df.withColumn(newColName, col(previousColName).cast(newColType))

希望有帮助