Вы получаете ошибку, потому что при инициализации exprs
вместо использования значений c1,c2,c3
вы создаете новую строку c1*c2+c3
.Поскольку столбец c1*c2+c3
не существует, следовательно, ошибка.Вы можете использовать строковую интерполяцию для построения exprs
val exprs = s"$c1*$c2+$c3"
И затем использовать это выражение в withColumn
.
val df = df.withColumn("target_col",expr(exprs)).
Я бы также предложил вамиспользуйте val
вместо или var
.