У меня есть dataframe - преобразованные dtypes в карту.
val dfTypesMap:Map[String,String]] = df.dtypes.toMap
Вывод:
(PRODUCT_ID,StringType)
(PRODUCT_ID_BSTP_MAP,MapType(StringType,IntegerType,false))
(PRODUCT_ID_CAT_MAP,MapType(StringType,StringType,true))
(PRODUCT_ID_FETR_MAP_END_FR,ArrayType(StringType,true))
Когда я использую жесткое кодирование типа [String] в row.getAS[String]
, компиляция не выполняетсяошибка.
df.foreach(row => {
val prdValue = row.getAs[String]("PRODUCT_ID")
})
Я хочу перебрать карту выше dfTypesMap
и получить соответствующий тип значения.Есть ли способ преобразовать типы столбцов dt в общие типы, как показано ниже?
StringType --> String
MapType(StringType,IntegerType,false) ---> Map[String,Int]
MapType(StringType,StringType,true) ---> Map[String,String]
ArrayType(StringType,true) ---> List[String]