It would be useful if Spark SQL supported the max_by() SQL aggregate function. Quoting from the Presto docs:
max_by(x, y) → [same as x]
Returns the value of x associated with the maximum value of y over all input values.
min_by works similarly.
Technically I can emulate this behavior using window functions but the resulting syntax is much more verbose and non-intuitive compared to max_by / min_by.