Я повторно использую пример в Объединить сводный и агрегированный столбец в PySpark Dataframe
Допустим, у меня есть Spark Dataframe
date | recipe | percent | volume
----------------------------------------
2019-01-01 | A | 0.03 | 53
2019-01-01 | A | 0.02 | 55
2019-01-01 | B | 0.05 | 60
2019-01-02 | A | 0.11 | 75
2019-01-02 | B | 0.06 | 64
2019-01-02 | B | 0.08 | 66
Как мне развернуть в одном столбце и агрегирование в другом, например, следующий псевдокод:
df.groupBy('date').max('volume').alias('max_volume').pivot('recipe').agg(avg('percent').alias('percent')).show()
date | A_percent | B_percent | max_volume
--------------------------------------------------------
2019-01-01 | 0.025 | 0.05 | 60
2019-01-02 | 0.11 | 0.07 | 75
Я бы хотел добиться этого за один шаг, не выполняя max для столбцов A_volume и B_volume позже, чтобы избежать присвоения им имен.
пс. Когда я запускаю этот псевдокод, я получаю
AttributeError: 'DataFrame' object has no attribute 'pivot'