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

Spark如何筛选DataFrame中与另一表指定字段不匹配的记录

问题原因

你当前的报错是因为未对两个表执行关联操作的前提下,直接在table1的过滤条件中引用table2的字段,Spark SQL的执行计划无法解析不属于当前数据集的字段,因此抛出属性缺失的异常。

正确实现方式

你要实现的需求是提取table1中istituto、servizio_rap、filiale_rap、codice_rap四个字段与table2对应字段没有完全匹配的记录,Spark提供了专门的left_anti关联类型实现这类需求,性能远高于普通关联后过滤的方案,实现代码如下:

// 指定四个匹配字段
val matchCols = Seq("istituto", "servizio_rap", "filiale_rap", "codice_rap")
// left_anti join仅保留左表中未在右表匹配到的记录
val result: DataFrame = table1.join(secondInput, matchCols, "left_anti")
// 输出结果验证
result.show()
逻辑说明
  • left_anti关联会按照指定的字段进行匹配,只要table1中某条记录的四个指定字段值和table2中任意一条记录的对应字段完全相等,该条记录就会被过滤
  • 最终返回结果完全符合你要求的“四个字段不匹配的记录”的需求,且自动保留table1的所有字段,不需要额外做字段裁剪

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:45:08