我在mysql中有一个表,它有post\u id和相应的兴趣:
我使用下面的正则表达式查询来选择包含1、2、3的兴趣。
SELECT * FROM INTEREST_POST where INTEREST REGEXP '(?=.*[[:<:]]1[[:>:]])(?=.*[[:<:]]3[[:>:]])(?=.*[[:<:]]2[[:>:]])';
我用hdfs导入了这个表。但是,当我在sparksql中使用相同的查询时,它会显示空记录。
如何在spark中使用regexp函数来选择包含1,2,3的兴趣?
2条答案
按热度按时间7uzetpgm1#
我找到解决办法了。你可以这样做:
var result = hiveContext.sql("""SELECT USER_POST_ID | FROM
利息表| WHERE INTEREST REGEXP '(?=.*0[1])(?=.*0[2])(?=.*0[3])' """) result.show
从interest\u post\u表获取记录6bc51xsx2#
您正在使用的正则表达式需要稍微更改一下。你可以这样做。