【发布时间】:2020-12-03 15:05:19
【问题描述】:
我希望本质上不需要在最后进行聚合以保持数据框完整且不创建分组对象
举个例子:
+---------++---------++---------++---------+
| country| code |Value | ids
+---------++---------++---------++---------+
| Mexico |food_1_3 |apple | 1
| Mexico |food_1_3 |banana | 2
| Canada |beverage_2 |milk | 1
| Mexico |beverage_2 |water | 2
+---------++---------++---------++---------+
需要这个:
+---------++---------++---------++----------+
| country| id |food_1_3 | beverage_2|
+---------++---------++---------++----------+
| Mexico | 1 |apple | |
| Mexico | 2 |banana |water |
| Canada | 1 | |milk |
|+---------++---------++---------++---------+
我试过了
(df.groupby(df.country, df.id).pivot("code").agg(first('Value').alias('Value')))
但基本上只获得前 1 名。在我的真实案例中,我有 20 列,其中一些只有整数,另一些有字符串......所以总和、计数、collect_list 这些 aggs 都没有计算出来......
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql