Строки не должны изменяться напрямую (это возможно, но не удобно). При манипуляциях с фреймами данных (набором данных строк) вы должны использовать API-интерфейс SparkSQL по двум основным причинам: 1. он прост в использовании 2. он позволяет spark выполнять множество оптимизаций по вашим запросам.
Теперь вот пример, который выглядит так, как будто вы пытаетесь достичь. По сути, я создаю набор данных с тремя столбцами и использую выборку, чтобы усреднить результат двух из них и отбросить последний. Дайте мне знать, если вам нужно больше деталей.
SparkSession spark = SparkSession.builder().getOrCreate();
Dataset<Row> data = spark
.range(10)
.select(col("id").as("id"),
col("id").cast("string").as("str"),
col("id").plus(5).as("id5") );
data.show();
Dataset<Row> result = data
.select(col("id"), col("id5"),
col("id").plus(col("id5")).divide(2).as("avg"));
result.show();
, что дает:
+---+---+---+
| id|str|id5|
+---+---+---+
| 0| 0| 5|
| 1| 1| 6|
| 2| 2| 7|
+---+---+---+
+---+---+---+
| id|id5|avg|
+---+---+---+
| 0| 5|2.5|
| 1| 6|3.5|
| 2| 7|4.5|
+---+---+---+