Hive Join on String返回没有匹配

时间:2014-09-23 12:36:31

标签: hive hiveql

我正在尝试对字符串值运行简单连接但没有匹配的行。但是,两个表中的所有值都相同

select l2.word,d.polarity from l2 join  dictionary d on (l2.word=d.word);

L2 table :
realtimesession_id      bigint                  None                
word                    string                  None   

Dictionary table :
realtimesession_id      bigint                  None                
word                    string                  None   

我尝试设置集hive.auto.convert.join=true; 但仍然没有匹配的记录。请有人帮忙。

3 个答案:

答案 0 :(得分:0)

您是否尝试过标准化外壳 - 蜂巢是区分大小写的?我通常在比较字符串时使用lower()来减少套管问题。

答案 1 :(得分:0)

加入字符串不是最佳做法,但如果需要,您应该使用:

选择l2.word,d.polarity from l2 join dictionary d on(l2.word rlike d.word)

答案 2 :(得分:0)

加入字符串将起作用。请记住,字符串匹配将区分大小写

考虑使用像UPPER或LOWER这样的功能。

例如,

select * from temp join new_temp on LOWER(temp.dept) = LOWER(new_temp.dept);

(经测试的解决方案)