我编写了以下函数,该函数强制转换了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作为类型而不是参数传递给函数
答案 0 :(得分:0)
如何?
def castCol[T<:DataType](newColName: String, newColType:T, previousColName: String): DataFrame =
df.withColumn(newColName, col(previousColName).cast(newColType))
希望有帮助