Я хочу создать таблицу, в которой каждая строка представляет собой уникальный идентификатор, а столбец «Место и город» содержит все места и города, которые посетил человек, упорядоченные по дате посещения с использованием Pyspark или Hive.
df.groupby("ID").agg(F.concat_ws("|",F.collect_list("Place")))
выполняет конкатенацию, но я не могу заказать ее по дате.Также для каждого столбца мне нужно продолжать делать этот шаг отдельно.
Я также пытался использовать функцию windows, как упоминалось в этом посте ( collect_list, сохраняя порядок на основе другой переменной ), но он сбрасываетошибка: java.lang.UnsupportedOperationException: 'collect_list (') не поддерживается в оконной операции.Я хочу:
1 - упорядочить объединенные столбцы в порядке пройденной даты.
2 - выполнить этот шаг для нескольких столбцов
Данные
| ID | Date | Place | City |
| 1 | 2017 | UK | Birm |
| 2 | 2014 | US | LA |
| 1 | 2018 | SIN | Sin |
| 1 | 2019 | MAL | KL |
| 2 | 2015 | US | SF |
| 3 | 2019 | UK | Lon |
Ожидаемый
| ID | Place | City |
| 1 | UK,SIN,MAL | Birm,Sin,KL |
| 2 | US,US | LA,SF |
| 3 | UK | Lon |