嗨,我有一张像下面这样的桌子
item_name | item_value | 时间戳 |
---|---|---|
hpc_max | 0.25 | 2023-03-01T17:20:00.000+0000 |
asset_min | 0.34 | 2023-03-01T17:20:00.000+0000 |
off_median | 0.30 | 2023-03-01T17:30:00.000+0000 |
hpc_max | 0.54 | 2023-03-01T17:30:00.000+0000 |
asset_min | 0.32 | 2023-03-01T17:35:00.000+0000 |
off_median | 0.67 | 2023-03-01T17:20:00.000+0000 |
asset_min | 0.54 | 2023-03-01T17:30:00.000+0000 |
off_median | 0.32 | 2023-03-01T17:35:00.000+0000 |
hpc_max | 0.67 | 2023-03-01T17:35:00.000+0000 |
我使用下面的命令按时间戳对 item_values 进行分组
grouped_df = (
df.groupBy("timestamp")
.agg(sort_array(collect_list("item_values")).alias("item_values"))
)
result = [row["item_values"] for row in grouped_df.sort("timestamp").collect()]
返回输出是这样的
[[10.046214032028468,
10.112576620155044,
23.68193075],
[10.046214032028468,
10.112576620155044,
23.660212571428573]]
但我希望值按 item_names 的顺序排列,(asset_min,hpc_max,off_median)
我怎样才能使用 pyspark 做到这一点?
非常感谢您的帮助!