#scala #apache-spark
#scala #apache-spark
Вопрос:
Я не могу поверить, что должен спросить об этом, но все ответы, которые я ищу, основаны на группировке по другим значениям и агрегатам. У меня есть фрейм данных с одним столбцом, и это просто даты типа Spark date. Я хочу самую последнюю дату и вернуть ее драйверу.
------------
| MyDate |
------------
|2020-10-01|
|2020-10-02|
|2020-10-02|
------------
Я пробовал:
df.groupBy("MyDate").agg(max("MyDate") as "max_date")
Но это просто дублирует данные во второй столбец.
Я знаю, что это глупо просто, но я не могу найти ответ.
Ответ №1:
просто используйте select
max
функцию with, как в обычном SQL:
import org.apache.spark.sql.functions._
import spark.implicits._
Seq(
"2020-10-01",
"2020-10-06",
"2020-10-03"
).toDF("date")
.select(max(col("date")).name("max_date"))
.show()
/*
----------
| max_date|
----------
|2020-10-06|
----------
*/