有一个具有许多重复项的spark_df,如下所示:
Name Cost
Alicja 5
Alicja 10
Alicja 7
Piotr 2
Piotr 8
Jon 5
现在我想将这个spark_df转换如下:
Name min_Cost max _cost
Alicja 5 10
Piotr 2 8
Jon 5 5
我在熊猫身上就知道这一点。但我正在努力学习spark,以便将其应用到大数据中。如果有人能帮忙,那就太好了。
用groupby
:聚合每个Name
的min
和max
import pyspark.sql.functions as f
df.groupby('Name').agg(
f.min('Cost').alias('min_cost'),
f.max('Cost').alias('max_cost')
).show()
+------+--------+--------+
| Name|min_cost|max_cost|
+------+--------+--------+
| Piotr| 2| 8|
|Alicja| 5| 10|
| Jon| 5| 5|
+------+--------+--------+