df.withColumn(x, when($"x" > 75, $"x" + 10).otherwise($"x")).show()
org.apache.spark.sql.AnalysisException: cannot resolve '`x`' given input columns: [Name, Subject, Marks];;
'Project [Name#7, Subject#8, CASE WHEN ('x > 75) THEN ('x + 10) ELSE 'x END AS Marks#38]
scala> df.show()
+----+-------+-----+
|Name|Subject|Marks|
+----+-------+-----+
| Ram|Physics| 80|
|Sham|English| 90|
|Ayan| Math| 70|
+----+-------+-----+
scala> x
res6: String = Marks
Я хочу передать переменную в качестве параметра, в которой хранится значение столбца фрейма данных. И на основе этого параметра он проверит условие, вычислит значение и заменит столбец с тем же именем в этом фрейме данных.
На самом деле большая проблема в том, что есть несколько столбцов с одинаковым именем, например «col1», «col2» "," col3 ".... Я сохраню эти столбцы в массиве и буду перебирать массив, передавая значение массива в операции фрейма данных. Но пока. Пожалуйста, дайте мне знать решение проблемы, если его можно обработать в искре- scala.