У меня есть столбец код со строками 1231A C, 2163B C, 6142ED. Значения строк должны быть преобразованы следующим отображением: 1-> A, 2-> B, 3 -> C, 4-> D, 5-> E, 6-> F, 7-> G, 8-> H , 9-> I, 0-> J и добавлены в новый столбец transformed_code
val followingMapping = Map(1 -> 'A', 2 -> 'B', 3 -> 'C', 4 -> 'D',
5 -> 'E', 6 -> 'F', 7 -> 'G', 8 -> 'H', 9 -> 'I', 0 -> 'J')
Вероятно, это должно быть сделано с udf
и с чем-то вроде этого:
val transform = udf {row: Row =>
//transform row value
}
df.withColumn("transformed_code", transform(df.col("code")))
но я не знаю как? Поэтому я пытаюсь сделать это с помощью следующего кода:
val b = df.select("code").collect()
val rowValue = b(0).getString(0)
for(i <- 0 until rowValue.length - 1)
{
println(c.charAt(i))
val currentCharacter = c.charAt(i)
//transform with mapping
}