Spark SQL "<=>"运算符



我最近在Scala Spark项目中遇到了这个运算符:"<=>"。我找不到任何文档。有谁知道它是如何工作的,或者知道一些文档?

我相信这与平等操作有关。

谢谢

观察结果1 (2/12/2020) |火花 2.3.2我做了一些实验,并注意到使用"<=>"对位于同一位置的数据执行联接会导致随机播放,而"=="则不会。

查看"Spark SQL 编程指南上支持的 Hive 功能"部分,您将在 Spark 支持的 Hive 运算符列表中找到它。

以下是它的作用:

  • 对于非空操作数,返回与 EQUAL(=) 运算符相同的结果

然而:

  • 如果两者都为空,则返回 TRUE

  • 如果其中一个为 NULL 则返回 FALSE

这在连接条件中是否有效. 我使用了它,但 Spark 抛出了一个错误

spark.sql('''
select tp1.* from tp1 left join tp2 where tp1.user_id_num <=> tp2.user_id_num''').show()

我收到的错误

org.apache.spark.sql.AnalysisException: Detected implicit cartesian product for LEFT OUTER join between logical plans

相关内容

  • 没有找到相关文章

最新更新