我想创建一个表,其中每一行都是唯一的id,“地点和城市”列包含一个人访问过的所有地点和城市,按访问日期排序,可以使用pyspark或hive。
df.groupby("ID").agg(F.concat_ws("|",F.collect_list("Place")))
没有连接,但我无法按日期排序。同样对于每一个专栏,我需要继续单独做这一步。
我还尝试使用本文中提到的windows函数(通过基于另一个变量保留顺序来收集\u列表),但它出现了一个错误:java.lang.unsupportedoperationexception:“在窗口操作中不支持收集\u列表(')”。我想:
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 |
1条答案
按热度按时间hsgswve41#