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

如何使用Spark SQL判断列值是否存在于另一列的列表中完成关联查询

你可以使用Spark SQL内置的array_contains函数实现数组包含判断,替换原来的IN语法即可,正确写法如下:

SELECT b.id, a.point
FROM A a, B b
WHERE array_contains(a.points_in_cluster, b.point)

更推荐使用规范的显式JOIN写法,避免隐式笛卡尔积带来的可读性问题:

SELECT b.id, a.point
FROM B b
JOIN A a ON array_contains(a.points_in_cluster, b.point)

array_contains是Spark SQL专门用于判断值是否存在于数组中的函数,第一个参数传入数组类型的字段,第二个参数传入待匹配的值,匹配成功返回布尔值true,即可满足筛选要求,执行后的输出和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:02