我必须在hiveql中执行一些查询和创建列操作。
例如,
app col1
app1 anybody love me?
app2 I hate u
app3 this hat is good
app4 I don't like this one
app5 oh my god
app6 damn you.
app7 such nice girl
app8 xxxxx
app9 pretty prefect
app10 don't love me.
app11 xxx anybody?
我想匹配一个关键字列表,比如 ['anybody', 'love', 'you', '', 'don't']
并选择匹配的关键字result作为新列,命名为 keyword
具体如下:
app keyword
app1 anybody, love
app4 I don't like this one
app6 damn you.
app8 xxx
app10 don't, love
app11 xxx
似乎我必须使用嵌套查询。
这种逻辑有点像选择匹配的结果行,并设置一个匹配的结果,该结果应保存在列表或类似的内容中,作为一个新列。
但我对hiveql还不够熟悉。
有人能帮我吗?
提前谢谢。
2条答案
按热度按时间ryoqjall1#
您可以将单词列表转换为一个表,并使用模式匹配将其与表联接:
请注意,这将重复
app
如果一个短语上有多个关键字匹配。您没有指定如何处理这个用例。在hive中,您还可以将其表述为:
vzgqcmou2#
在Hive里你可以用
stack
udtf公司:对于较旧版本的配置单元,也可以使用
like
将不起作用,请在其中使用交叉连接和堆栈并筛选: