首页 > 解决方案 > Inner Join On (Hive) 给出与 PySpark Inner Join 不同的结果

问题描述

我今天观察到了这种现象。当我在 Hive CLI 中执行以下命令时,我获得的结果与使用 pyspark 执行此操作不同:

蜂巢:

Select count(distinct t1.fieldX) from table1 t1 JOIN table2 t2 ON (t1.fieldX=t2.fieldX AND t1.fieldY=t2.fieldY);

结果 : 17 488

火花SQL:

hc.sql("Select count(distinct t1.fieldX) from table1 t1 JOIN table2 t2 ON (t1.fieldX==t2.fieldX AND t1.fieldY==t2.fieldY)")

结果:5555

我使用此代码获得了相同的结果:

tabl1.alias("t1").join(
    other=table2.alias("t2"),
    on=[t1.fieldX==t2.fieldX, t1.fieldY==t2.fieldY]
    how='inner'
    ).select("fieldX").distinct().count()

结果:5555

我不明白为什么我会得到不同的结果!

标签: pysparkhiveqlpyspark-sql

解决方案


推荐阅读