如何按列中值的顺序按时间戳分组?

问题描述 投票:0回答:0

嗨,我有一张像下面这样的桌子

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 做到这一点?

非常感谢您的帮助!

python pyspark databricks
© www.soinside.com 2019 - 2024. All rights reserved.