hive split函数空串分隔数组有空元素
近期有个公司有个需求要计算搜索词和库中的关键词相似度,我想用搜索词和关键词的杰卡德算法来计算,也就是用数组交集/数组并集,来计算相似度。但是用split空串分隔字符串,结果数组中会莫名其妙出现一个空元素。
select split(‘这是一段普普通通的文字’,‘’);
解决
思路是将分隔后的数组转成按逗号分隔的字符串,截取最后一个逗号,在利用splitt函数按照逗号将数据分隔
select split(substring(concat_ws(‘,’,split(‘这是一段普普通通的文字’,‘’)),0,
length(concat_ws(‘,’,split(‘这是一段普普通通的文字’,‘’)))-1),‘,’);
这种方法是在不怎么优雅,有其他好的办法,多多交流哈。