比较Hive中的文本

时间:2016-06-22 07:17:14

标签: hadoop hive sql-like

我有一个带有文本列的表和另一个带有关键字列的表。现在我想在另一个表中获取包含关键字的所有文本。我尝试使用LIKE运算符,但它不起作用。我的查询看起来像这样

select screen_name from t_tweets_geo where text like '% select keywords from h_trends %';

但是这个查询没有返回任何内容。请帮助

2 个答案:

答案 0 :(得分:1)

select在命令中的字符串文字内。因此它没有被执行..

你可以改用

select screen_name from t_tweets_geo,h_trends where text LIKE concat('%',keywords,'%')

请注意,这不会删除重复项。

答案 1 :(得分:0)

您的查询不起作用,因为任何关键字列都不太可能包含字符串''从h_trends中选择关键字'。

一种方法是使用join

select g.screen_name
from t_tweets_geo g join
     h_trends h
     on concat(' ', text, ' ') like concat(' ', h.keywords, ' %') ;

但是,为实体存储关键字的更好方法是使用单独的表,每行screen_namekeyword一行。在单个字符串中存储值列表充满了危险。