如何解决Pyspark:在多个列上有效地应用滚动窗口功能
我有一个包含多个列的数据集,我想为每个列应用一些功能。一个例子
列:['source_bytes','source_packets','rate']
功能:['avg','stddev']
结果将是一个移动的窗口,该窗口将生成名为
的新列source_bytes_avg,source_bytes_stddev,source_packets_avg,source_packets_stddev
我已经做好了滚动窗口的准备,但想知道如何有效地将其应用于许多列
w = (Window()
.partitionBy("source_ip")
.orderBy(F.col("timestamp"))
.rangeBetween(-1800,0))
flows_filtered_v2_df2 = flows_filtered_v2_df.withColumn("timestamp",F.unix_timestamp(F.to_timestamp("start_time")))\
.withColumn("src_bytes_avg_30min",F.avg("source_bytes").over(w))\
.withColumn("src_bytes_std_30min",F.stddev("source_bytes").over(w))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。