Вы можете использовать функцию when
, чтобы использовать условные выражения
import org.apache.spark.sql.functions.when
mydf.withColumn("myVar", when($"F3" > 3, $"F4").otherwise(0.0))
Но я не понимаю, что вы хотите суммировать, поскольку в строке есть одно значение F4
EDIT
Если вы хотите объединить сначала, вы можете выполнить groupBy
и agg
следующим образом:
mydf.groupBy("F1", "F2")
.agg(sum("F3").as("F3"), sum("F4").as("F4"))
А затем добавьте предложение withColumn, как и прежде.
Собираем все вместе
:
mydf.groupBy("F1", "F2")
.agg(sum("F3").as("F3"), sum("F4").as("F4"))
.withColumn("myVar", when($"F3" > 3, $"F4").otherwise(0.0))