Spark Dataframe Dynamic DataType Cast основанный на других столбцах - PullRequest
0 голосов
/ 24 сентября 2019

Мы получаем общий фид данных, где это значение и тип данных в 2 столбцах.Очевидно, что для общего решения я хочу передать значение столбца в приведение, а не явное приведение всего, основываясь на других справочных данных.

Я пробовал это, но получаю исключение.Так что 2 вопроса на самом деле это возможно?Почему мое решение дает исключение?

Я пытаюсь объявить UDF, который передает тип обратно.

def dynamiccast(datatype: String) : DataType = {

  var b:DataType = null
  datatype match {
    case "INT" => b = IntegerType
    case "STRING" => b = StringType
    case "BOOLEAN" => b = BooleanType
  }
  b
}

val castUDF = udf[DataType, String](dynamiccast)

Я получаю это исключение:

java.lang.UnsupportedOperationException: Schema for type org.apache.spark.sql.types.DataType is not supported

Приветствия

...