假设我们有一个查找表(表a)和另一个表(表b),如下所示:我们要从表\u a中搜索表\u b的字符串以返回化学类型并形成表\u c,如下所示:如何在hadoop环境下使用hive查询来实现这一点?最具挑战性的部分是在同一个字符串中搜索多个关键字,并为每个匹配的记录创建新行。谢谢您!
krugob8w1#
我认为您应该以不同的方式构造表(或者保留当前的结构,但用逗号分隔并使用 explode 在Hive里)就像这样:
explode
---------------------------- | 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;
1条答案
按热度按时间krugob8w1#
我认为您应该以不同的方式构造表(或者保留当前的结构,但用逗号分隔并使用
explode
在Hive里)就像这样:然后,似乎需要执行笛卡尔积联接: