Попытка преобразовать все типы данных источника на основе списка в 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'