То есть вы хотите посчитать количество повторяющихся значений на основе столбцов col2
и col4
? Это должно сделать трюк ниже.
val dfWithDupCount = df.withColumn("isDup", when($"col2" === "col4", 1).otherwise(0))
Это создаст новый фрейм данных с новым логическим столбцом, в котором говорится, что если col2
равно col4
, введите значение 1, иначе 0.
Чтобы найти общее количество строк, все, что вам нужно сделать, это сделать группу по isDup
и количеству.
import org.apache.spark.sql.functions._
val groupped = df.groupBy("isDup").agg(sum("isDup")).toDF()
display(groupped)
Извиняюсь, если я вас неправильно понял. Возможно, вы могли бы использовать одно и то же решение, если пытались сопоставить любой из столбцов вместе, но для этого потребовалось бы использовать вложенные операторы when.