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

问题描述 投票:0回答:1

我从表中获得此数据:

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

我想使用以下字段来转换或创建新的分区表:栏位:编号,日期,发布编号,广告客户编号,关键字分区字段:主机,国家/地区

keyword = veganway

host = 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的线索吗?

提前感谢。

regex hive hiveql partitioning
1个回答
0
投票

使用内置函数parse_url_tuple提取必填字段。由于显示的网址采用非标准格式,因此您可能需要额外执行parse_url_tuple才能获取国家/地区值。否则,您可以在函数中使用split

QUERY:country
© www.soinside.com 2019 - 2024. All rights reserved.