当前位置:Gxlcms > mysql > hive中leftouterjoin的问题

hive中leftouterjoin的问题

时间:2021-07-01 10:21:17 帮助过:9人阅读

hive中leftouterjoin的问题,where过滤条件写的地方不对,得出的结果不一样,请看下面的代码过程,不用多解释。 Hive Hadoop hive desc t1; OKid int name string p_id int Time taken: 0.118 seconds, Fetched: 3 row(s)hive desc t2;OKid int name string T

hive中left outer join 的问题,where过滤条件写的地方不对,得出的结果不一样,请看下面的代码过程,不用多解释。 Hive Hadoop
  1. hive> desc t1;
  2. OK
  3. id int
  4. name string
  5. p_id int
  6. Time taken: 0.118 seconds, Fetched: 3 row(s)
  7. hive> desc t2;
  8. OK
  9. id int
  10. name string
  11. Time taken: 0.051 seconds, Fetched: 2 row(s)
  12. hive> select * from t1;
  13. OK
  14. 1 aaa 2
  15. 2 bbb 2
  16. 3 ccc 3
  17. 4 ddd 4
  18. 5 fff 3
  19. 6 ooo 23
  20. Time taken: 0.418 seconds, Fetched: 6 row(s)
  21. hive> select * from t2;
  22. OK
  23. 4 jjj
  24. 4 jjj
  25. 4 jjj
  26. 2 abc
  27. 3 hhh
  28. 4 jjj
  29. 3 ii
  30. 2 fuck
  31. 7 shit
  32. Time taken: 0.068 seconds, Fetched: 9 row(s)
  33. hive> select * from t1 left outer join t2 on (t1.p_id=t2.id) where t2.name='abc';
  34. OK
  35. 1 aaa 2 2 abc
  36. 2 bbb 2 2 abc
  37. Time taken: 21.53 seconds, Fetched: 2 row(s)
  38. hive> select * from t1 left outer join t2 on (t1.p_id=t2.id and t2.name='abc');
  39. OK
  40. 1 aaa 2 2 abc
  41. 2 bbb 2 2 abc
  42. 3 ccc 3 NULL NULL
  43. 4 ddd 4 NULL NULL
  44. 5 fff 3 NULL NULL
  45. 6 ooo 23 NULL NULL
  46. Time taken: 17.676 seconds, Fetched: 6 row(s)
  47. hive left outer join 要过滤右表的数据应该是第二种写法,第一种是mysql的写法,但是在hive中会存在问题。

人气教程排行