Вы могли бы просто использовать greatest
? например,
SELECT *, GREATEST( date1, date2 ) xmax
FROM tmp
Или поместить их в массив, взорвать его и затем максимально? например, что-то вроде этого:
%sql
WITH cte AS
(
SELECT *, EXPLODE( ARRAY( date1, date2 ) ) xmax
FROM tmp
)
SELECT MAX( xmax )
FROM cte
Кажется немного чрезмерным, когда вы можете просто использовать greatest
хотя? Также стоит прочитать список встроенных функций Spark SQL. Вам не нужно помнить их все, но, по крайней мере, если вы знаете, что что-то возможно, это полезно:
https://spark.apache.org/docs/2.3.0/api/sql/index.html