比较 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_name
和 keyword
一行。在单个字符串中存储值列表充满了危险。
select 在您的命令中的字符串文字内。因此它没有被执行..
你可以用这个代替
select screen_name from t_tweets_geo,h_trends where text LIKE concat('%',keywords,'%')
请注意,这不会删除重复项..
我有一个 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_name
和 keyword
一行。在单个字符串中存储值列表充满了危险。
select 在您的命令中的字符串文字内。因此它没有被执行..
你可以用这个代替
select screen_name from t_tweets_geo,h_trends where text LIKE concat('%',keywords,'%')
请注意,这不会删除重复项..