Как получить последние значения в таблице с помощью Spark? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть таблица, подобная следующей:

date       | person | assignment
-----------+--------+-----------
2019-01-01 | joe    | blue
2019-02-01 | joe    | red
2019-01-01 | mel    | green
2019-03-01 | mel    | yellow
2019-02-01 | drew   | blue

И я хочу получить следующий результат с запросом Spark

latest     | person | assignment
-----------+--------+-----------
2019-02-01 | joe    | red
2019-03-01 | mel    | yellow
2019-02-01 | drew   | blue

Я знаю, что могу просто сделать person, max(date) latest и затем снова запросить полный список. Но есть ли простой способ сделать это с помощью оконной функции Spark.

1 Ответ

1 голос
/ 31 мая 2019
df.withColumn(
    "num",
    row_number() over Window.partitionBy("person").orderBy(desc("date")))
  .filter($"num" === 1)
  .drop("num")
  .show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...