Spark SQL имеет функции, которые вы можете использовать для достижения этой цели.
import org.apache.spark.sql.functions.{first, col}
В Scala вы можете сделать что-то вроде этого:
df.groupBy(col("Name"))
.agg(first("ID").alias("ID"),
first(col("Timestamp")).alias("Timestamp"),
count(col("Name")).alias("Count")
)
Если вы хотите сгруппировать по обоим IDи имя вы также можете написать это как
df.groupBy(col("ID"), col("Name"))
.agg(first(col("Timestamp")).alias("Timestamp"),
count(col("Name")).alias("Count")
)