如果您同时收集日期和值作为列表,则可以使用和根据日期对结果列进行排序
udf,然后仅将值保留在结果中。
import operatorimport pyspark.sql.functions as F# create list columngrouped_df = input_df.groupby("id") .agg(F.collect_list(F.struct("date", "value")) .alias("list_col"))# define udfdef sorter(l): res = sorted(l, key=operator.itemgetter(0)) return [item[1] for item in res]sort_udf = F.udf(sorter)# testgrouped_df.select("id", sort_udf("list_col") .alias("sorted_list")) .show(truncate = False)+---+----------------+|id |sorted_list |+---+----------------+|1 |[10, 5, 15, 20] ||2 |[100, 500, 1500]|+---+----------------+
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)