从HiveQL中的url字段解析和提取字段

呼叫

我有一个表中的数据:

id,uri,date_entered,p_id,ads_id
1,http://vegiefood.com/path1/p.php?keyword=veganway&country=france#Ref1,30/JUN/2016,PVEGIEFOOD,GOOGLEADSENSE
2,http://techteacher.com/path1/p.php?keyword=datascience&country=norway#Ref1,15/JAN/2018,PTECHTEACHER,GOOGLEADSENSE

我想使用以下字段来转换或创建新的分区表:字段:id,日期,pub_id,advertiser_id,关键字分区字段:主机,国家/地区

关键字=素食主义者

主持人= vegiefood.com

国家=法国

并得到一张这样的桌子

+-------------+---------------+-----------------+-----------------------+------------------+------------------+------------------+
| id          | date          |  pub_id         |       advertiser_id   |  keyword         |   host           | country          |
+-------------+---------------+-----------------+-----------------------+------------------+------------------+------------------+
| 1           | 30/JUN/2016   | PVEGIEFOOD      | GOOGLEADSENSE         | veganway         | vegiefood.com    | france           |
| 2           | 15/JAN/2018   | PTECHTEACHER    | GOOGLEADSENSE         | datascience      | techteacher.com  | norway           |
+-------------+---------------+-----------------+-----------------------+------------------+------------------+------------------+

我对分区表或从另一个表加载数据没有任何问题,但是我的问题是我没有解析uri字段[ http://vegiefood.com/path1/p.php?keyword=veganway&country = france#Ref1]我已经尝试过使用[regexp_extract(str,regexp [,idx])-提取与regexp匹配的组]

有人可以帮助我,或者提供一些有关正则表达式或其他函数来解析uri的线索吗?

提前致谢。

瓦姆西·普拉巴拉(Vamsi Prabhala)

使用内置函数parse_url_tuple提取必填字段。由于显示的网址是非标准格式,因此您可能需要做一些额外的工作split才能获得国家/地区的值。否则,您可能已经QUERY:country在该函数中使用过。

select t.*,parsed.host,parsed.keyword,split((split(query,';')[1]),'=')[1]
from tbl t
lateral view parse_url_tuple(uri,'HOST','QUERY:keyword','QUERY') parsed as host,keyword,query

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 XML 文件解析和提取字段值

来自分类Dev

从Scala中的Some中提取字段

来自分类Dev

从Logstash中的路径提取字段

来自分类Dev

从Scala中的Some中提取字段

来自分类Dev

Datadog Grok解析-从嵌套JSON中提取字段

来自分类Dev

在Python中从字符串中提取字段和值

来自分类Dev

从 HTTP 引用 URL 中提取字段/属性

来自分类Dev

提取字段长度

来自分类Dev

从Java中的Json字符串中提取字段

来自分类Dev

Selenium Python:从<a>标记中的json数据中提取字段

来自分类Dev

提取字符串中的字段会话 ID

来自分类Dev

从Flask中的mysql解析json以从记录中获取字段

来自分类Dev

ruby:从嵌套的json中提取字段

来自分类Dev

无法从LINQ查询中提取字段

来自分类Dev

从mongodb BasicDBobject提取字段值

来自分类Dev

从输入文件路径logstash提取字段?

来自分类Dev

对象数组的角度提取字段

来自分类Dev

从Ajax请求中提取字段

来自分类Dev

使用grep快速提取字段

来自分类Dev

Clojure:从 defrecord 中提取字段

来自分类Dev

从 JSON 文件中提取字段

来自分类Dev

从字符串中提取字段

来自分类Dev

使用SQL或PL / SQL解析XML文档以提取字段值

来自分类Dev

使用SQL或PL / SQL解析XML文档以提取字段值

来自分类Dev

Cakephp 3-在beforefind中获取字段和条件

来自分类Dev

Cakephp 3-在beforefind中获取字段和条件

来自分类Dev

如何在Elasticsearch中基于输入字段获取字段的总和值(输入字段和总和输出字段不同)

来自分类Dev

Mongo 从多字段列中提取字段

来自分类Dev

使用 AssertJ 进行测试时从实际和预期对象中提取字段