如何使用配置单元返回基于查找表的匹配记录

pu82cl6c  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(354)

假设我们有一个查找表(表a)和另一个表(表b),如下所示:

我们要从表\u a中搜索表\u b的字符串以返回化学类型并形成表\u c,如下所示:

如何在hadoop环境下使用hive查询来实现这一点?最具挑战性的部分是在同一个字符串中搜索多个关键字,并为每个匹配的记录创建新行。谢谢您!

krugob8w

krugob8w1#

我认为您应该以不同的方式构造表(或者保留当前的结构,但用逗号分隔并使用 explode 在Hive里)就像这样:

----------------------------
| Table A                  |
----------------------------
| Chemical Type  | Keyword |
----------------------------
| HF             |  100HF  |
----------------------------
| HF             |  100:HF |
----------------------------
| HCL            |  HCL200 |
----------------------------
| HCL            |  500HCL |
----------------------------
etc...

然后,似乎需要执行笛卡尔积联接:

select distinct b.machine,b.string,a.chemical_type from
   Table_A as a, Table_B as b where instr(b.string,a.keyword) > 0;

相关问题