使用LIKE在Hive中连接表

时间:2017-06-01 19:32:32

标签: join hiveql

我将tbl_A中的tbl_A连接到tbl_A中的列CustomerID,并将tbl_B中的列输出加入到包含客户ID的列中。但是,表B包含相关行中的所有其他信息,我不想在加入时丢失。我尝试使用like加入,但是我在输出列中丢失了不包含ID的行。 enter image description here enter image description here

这是我在Hive中的连接查询:

select a.*, b.Output from tbl_A a
left join tbl_B b
On b.Output like concat('%', a.CustomerID, '%')

但是,我从输出中丢失了其他行。

谢谢。

2 个答案:

答案 0 :(得分:1)

我建议首先从自由浮动字段中提取所有ID,在您的情况下是'输出'表B中的列放入单独的表中。然后再次将此表与ID表连接到表B,在每行中填入ID,然后将第二个连接表,即表B,ID为表A.

希望这会有所帮助。

答案 1 :(得分:0)

您还可以通过像这样的简单配置单元查询来实现目标:)

select a.*, b.Output 
from tbl_A a, tbl_B b
where b.Output like concat('%', a.CustomerID, '%')