Как вернуть запись матча на основе таблицы поиска с помощью улья
Допустим, у нас есть справочная таблица (table_A) и другая таблица (table_B) следующим образом:
И мы хотим найти строку Table_B из Table_A, чтобы вернуть химический тип и форму Table_C, следующим образом:
Как мы можем реализовать это, используя запрос улья в среде hadoop? Сложной задачей является поиск нескольких ключевых слов в одной строке и создание новой строки для каждой соответствующей записи. Спасибо!
1 ответ
Я думаю, что вы должны структурировать Table_A по-другому (или оставить текущую структуру, но разделить запятыми и использовать 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;