You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark如何基于最新order_date记录实现两个DataFrame关联

PySpark 实现按id取最新记录后关联DataFrame

实现逻辑

  • 先对df1使用窗口函数标记每个id下的记录时序,筛选出每个id对应order_date最新的一条记录
  • 用处理后的df1和df0基于id字段关联得到结果

代码实现

from pyspark.sql.window import Window
import pyspark.sql.functions as F

# 1. 定义窗口规则:按id分组,order_date降序排列
window_spec = Window.partitionBy("id").orderBy(F.desc("order_date"))

# 2. 筛选df1中每个id的最新记录
df1_latest = df1.withColumn("row_num", F.row_number().over(window_spec)) \
                .filter(F.col("row_num") == 1) \
                .drop("row_num")

# 3. 两个DataFrame关联得到最终结果
final_df = df0.join(df1_latest, on="id", how="inner")

# 打印验证结果
final_df.show()

补充说明

如果需要保留df0中存在但df1中不存在的id,可将关联参数how="inner"调整为how="left"即可。


内容的提问来源于stack exchange,提问作者Alejandro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:24:05