【发布时间】:2015-07-24 20:59:31
【问题描述】:
我正在尝试在 hive 中查询数据(将其视为表中具有长字符串的列)。具体要求是过滤具有模式的字符串。
example string1: "Some content. AB: xyz-p1 CD: rst-p1"
example string2: "Some content. AB: xyz-p2 CD: rst-p2"
example string3: "Some content. AB: xyz-p1 CD: xyz-p1"
example string4: "Some content. AB: xyz-p2 CD: xyz-p2"
(p1 和 p2 是模式,可以将它们视为字符串。AB: 和 CD: 是固定(常量)字符串。xyz 和 rst 也是字符串而不是常量)
我要求 string1 和 string2 应该是 hive 查询结果的一部分,而不是 string3 和 string4。更正式地说,字符串 AB 和 CD 后面不能跟随相同的模式(xyz 或 rst)。
我最初的尝试是这样的:-
select * from tableName where (col1 like '%AB: %-p1%' or col1 like '%CD: %-p2%')
and (col1 not like '%AB: %-p1%') and (col2 not like '%CD: %-p2%')
但是这似乎没有给出预期的结果。
【问题讨论】:
标签: hive where-clause