我正在使用Hive分析如下所示的网络日志

415503 - - [10/Jun/1998:00:48:00 +0000] "GET /english/images/nav_sitemap_off.gif HTTP/1.1" 200 416

我使用下面的正则表达式将此加载到配置单元表
([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)

但是,如果我在https://www.regex101.com/中检查此正则表达式,则此正则表达式与我的字符串不匹配。

如果我删除块中的一些反斜杠
(-|\\[[^\\]]*\\])

已验证。

我想在Hive中使用正则表达式时,必须放\以转义字符串吗?但是在创建数据库之前如何验证这一点?

最佳答案

Hive使用Java regex语法。尝试使用http://www.fileformat.info/tool/regex.htm进行测试。

有关详细信息,请参见Apache Hive - REGEXColumnSpecification

regex - Hive的正则表达式与普通正则表达式不同吗?-LMLPHP

09-25 16:59
查看更多