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

Hadoop 如何使用配置单元返回基于查找表的匹配记录,hadoop,hive,lookup-tables,Hadoop,Hive,Lookup Tables,假设我们有一个查找表(表a)和另一个表(表B),如下所示: 我们希望从表A中搜索表B的字符串,以返回化学类型并形成表C,如下所示: 如何在hadoop环境下使用配置单元查询来实现这一点? 具有挑战性的部分是在同一字符串中搜索多个关键字,并为每个匹配的记录创建新行。 谢谢!我认为您应该以不同的方式构造表A(或者保留当前结构,但以逗号分隔,并在配置单元中使用分解),如下所示: 然后,似乎需要执行笛卡尔乘积联接: select distinct b.machine,b.string,a.chemi

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

我们希望从表A中搜索表B的字符串,以返回化学类型并形成表C,如下所示:

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

我认为您应该以不同的方式构造表A(或者保留当前结构,但以逗号分隔,并在配置单元中使用
分解
),如下所示:

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

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;

我认为您应该以不同的方式构造表A(或者保留当前结构,但用逗号分割,并在hive中使用
explode
),如下所示:

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

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;

将图像替换为文本。通过选择图像并应用ctrl+k对其进行格式化。将图像替换为文本。通过选择图像并应用ctrl+k对其进行格式化。