我们有以下PyparkDataframe:
+----+----------+----------+----------+---------+
|year|language_1| summary_1|language_2|summary_2|
+----+----------+----------+----------+---------+
|2013| Java| Great| Python| Briliant|
|2014| Python| Awesome| Scala| Horrible|
|2015| Python| Amazing| Java| Wow|
|2016| Python|Incredible| C++| Nice|
|2017| Scala| Good| C++| Noway|
|2018| Scala| Fantastic| C++| Cool|
+----+----------+----------+----------+---------+
这个问题有点难以解释,所以请容忍我。对于语言1和语言2中的所有相同语言,我希望能够使用“年”列作为分界符来调整摘要1和摘要2列的值,因此相同语言应该为该语言选择具有最大年份的行,并将摘要1和摘要2中的所有摘要更改为等于最大年份行的摘要)。例如,对于python,我希望能够用“incredible”替换所有摘要,因为“incredible”行是python最近的一年。以此类推。所以结果是:
+----+----------+----------+----------+----------+
|year|language_1| summary_1|language_2| summary_2|
+----+----------+----------+----------+----------+
|2013| Java| Wow| Python|Incredible|
|2014| Python|Incredible| Scala| Fantastic|
|2015| Python|Incredible| Java| Wow|
|2016| Python|Incredible| C++| Cool|
|2017| Scala| Fantastic| C++| Cool|
|2018| Scala| Fantastic| C++| Cool|
+----+----------+----------+----------+----------+
1条答案
按热度按时间gdx19jrr1#
不确定这是否是最好的方法,但您可以首先融化数据框,使其仅包含3列(年份、语言、摘要),使用上一个问题的答案,然后旋转数据框以恢复原始结构: