gpt4 book ai didi

python - PySpark 旋转

转载 作者:行者123 更新时间:2023-12-01 02:29:28 26 4
gpt4 key购买 nike

我想使用 PySpark 从多个表中转置数据,但我需要以一种奇怪的方式来做。请参阅下面的示例。

原表:

Vehicle_id | Owner_ID    | Vehicle_Buy_Date
--------------------------------------------
1 | 1 | 01/01/2015
1 | 2 | 01/10/2014
2 | 1 | 10/10/2016

最终结果:

Vehicle_id | Owner_1_Buy_Date | Owner_2_Buy_Date
------------------------------------------------
1 |01/01/2015 |01/10/2014
2 |10/10/2016 |NULL

我知道这是一个不寻常的问题,因为这主要不是在数据库表上完成的。

有没有办法在 PySpark 中进行这种类型的旋转?

最佳答案

pyspark中的函数称为pivot:

import pyspark.sql.functions as psf
df.groupBy("Vehicle_id").pivot("Owner_ID").agg(psf.max("Vehicle_Buy_Date")).show()

+----------+----------+----------+
|Vehicle_id| 1| 2|
+----------+----------+----------+
| 1|01/01/2015|01/10/2014|
| 2|10/10/2016| null|
+----------+----------+----------+

如果您知道不同 Owner_ID 的数量,则可以将其指定为 pivot 函数中的列表参数,否则它将自行计算。

关于python - PySpark 旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47004009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com