Hive の 2 つのテーブルはあいまい一致関連付けのように実装されます

testa表(字段a)
  aaa
  bba
  cccddd
  dddaaa

testb表(字段b)
   a
   b
   
1. 使用like+concat模糊配对
select
   a.a
from testa a ,testb b
where a like concat('%',b.b,'%')
group by a.a

2. 使用locate函数
select
   a.a
from testa a ,testb b
where locate(b.b,a.a)>0
group by a.a

3. 使用instr函数
select
   a.a
from testa a ,testb b
where instr(a.a,b.b)>0
group by a.a

3. 使用split函数
select
   a.a
from testa a ,testb b
where split(a.a,b.b)[1] is not null
group by a.a

注:
1. 重複の削除操作が必要です。たとえば、テーブル a が b と一致する場合、2 つのレコードが生成されます。
2. 上記によりデカルト積が生成されるため、データの大きさに注意してください。両方のテーブルが比較的大きい場合は、テーブルを分割して個別に関連付けることを検討してください。
3. 「いいね」は比較的効率が悪いため、慎重に使用するのが最善です

おすすめ

転載: blog.csdn.net/qq_44696532/article/details/134668055