
如果您同时收集日期和值作为列表,则可以使用和根据日期对结果列进行排序
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条)