Преобразование нескольких столбцов несоответствие в таблице - Spark Scala - PullRequest
0 голосов
/ 24 июня 2019

Попытка преобразовать все типы данных источника на основе списка в spark scala - без использования нескольких операторов приведения и какого-либо жесткого кодирования имен столбцов в функциях.

Здесь я пытаюсь передать свой исходный файли список целевых типов данных, в соответствии с которым я хочу преобразовать исходные типы данных на основе целевого списка, когда происходит несоответствие

 def castAllTypedColumnsToNew(df: DataFrame, TypeList: List[String]) = {

 TypeList.foreach
        {
          x =>
          {
            print(x)
            df.schema.filter(_.dataType != x).foldLeft(df) 
                {
                case (acc, col) => acc.withColumn(col.name, df(col.name).cast(x))
                }
          }

        }

}



val result = castAllTypedColumnsToNew(InputData_Schema,dataTypeList)


dataTypeList: List[String] = List(IntegerType, IntegerType, IntegerType, StringType)

Я получаю сообщение об ошибке, используя приведенный ниже код:

org.apache.spark.sql.catalyst.parser.ParseException: 

DataType integertype is not supported.(line 1, pos 0)

== SQL ==
IntegerType' 
...