配置单元-比较两个字符串列

时间:2019-04-02 18:24:45

标签: hive hiveql

我在表A的A列(源字符串)中有自由样式的文本。我试图用表B的B列(子字符串)中的每个值解析A列。要查看b列中的任何子字符串是否为出现在A列中。如果存在子字符串,那么我想要对应的C列(类别)作为结果

我能够通过类似下面的case语句实现较小数据集的实现,但是子字符串和类别的列表不断增加。我该怎么做。

SELECT A.sourcestring, A.primarykey, B.substring, B.category, 
       CASE
          WHEN lower(sourcestring) IS NULL THEN NULL
          WHEN lower(sourcestring) RLIKE '%blister|burn|fire|grill|hot|lighter|oven|scald|scorch|stove|torch|welder%'
          THEN 'burn '
          ELSE 'other' 
        END 

表A

sourcestring         
"i am here"    
"he is here"             

表B

substring | category
"here"    | "present"  
"not"     | "not present"
"mad"     | "not related"

我希望结果表为

表c

sourcestring    resultcategory     
"i am here"     "present"         
"he is here"    "present"

0 个答案:

没有答案