比较 Hive 中的文本

Comparing Text in Hive

我有一个 table 包含文本列,另一个 table 包含关键字列。现在我想在另一个 table 中获取所有包含关键字的文本。我尝试使用 LIKE 运算符,但它不起作用。我的查询如下所示

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

但是这个查询没有返回任何东西。请帮忙

您的查询无效,因为任何关键字列都不太可能包含字符串 `' select 来自 h_trends 的关键字。

一种方法是使用 join:

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

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

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

你可以用这个代替

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

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