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

如何基于匹配行使用Spark Scala合并两个DataFrame

解决思路与代码实现

要实现仅保留两个DataFrame中ID匹配的行并合并,可按以下步骤操作:

  1. 提取共同ID:通过intersection方法找出两个表ID列的交集,锁定需要保留的ID范围。
  2. 筛选目标行:分别从两个DataFrame中筛选出ID属于共同ID列表的行。
  3. 合并并排序:将筛选后的两个表拼接,再按ID排序,让同一ID的行相邻排列。

完整代码

import pandas as pd

# 创建示例DataFrame
df1 = pd.DataFrame({
    'ID': ['V1', 'V2', 'V3'],
    'status': ['Low', 'Low', 'Low']
})

df2 = pd.DataFrame({
    'ID': ['V1', 'V2', 'V6'],
    'status': ['High', 'High', 'High']
})

# 获取两个表共有的ID
common_ids = df1['ID'].intersection(df2['ID'])

# 筛选出仅含共同ID的行
filtered_df1 = df1[df1['ID'].isin(common_ids)]
filtered_df2 = df2[df2['ID'].isin(common_ids)]

# 合并并按ID排序
result = pd.concat([filtered_df1, filtered_df2]).sort_values(by='ID').reset_index(drop=True)

print(result)

输出结果

ID status
0  V1    Low
1  V1   High
2  V2    Low
3  V2   High

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:28:10