我使用hiveql处理存储在hdfs中的数百万行域名文本数据。下面是一个手工选择的子集来说明词汇的多样性。有重复条目。
dnsvm.mgmtsubnet.mgmtvcn.oraclevcn.com.
mgmtsubnet.mgmtvcn.oraclevcn.com.
asdf.mgmtvcn.oraclevcn.com.
dnsvm.mgmtsubnet.mgmtvcn.oraclevcn.com.
localhost.
a.localhost.
img.pulsemgr.com.
36.136.154.156.in-addr.arpa.
accounts.spotify.com.
_dmarc.ixia-devops.com.
&eventtype=close&reason=4&duration=35.
&eventtype=close&reason=3&duration=10336.
我试图根据域的最后两个级别获得#行数,有时第二个级别不存在(即。 localhost.
). 例如:
domain_root count
oraclevcn.com. 4
localhost. 1
a.localhost. 1
pulsemgr.com. 1
in-addr.arpa. 1
spotify.com. 1
ixia-devops.com 1
这将是很高兴也看到如何过滤出域名第二级是缺席。
我不知道从哪里开始。我见过这个词的用法 SPLIT()
功能,但这可能不是健壮的,因为域名可能有许多级别,例如:a.b.c.d.e.f.g.h.i等。
如有任何想法,我们将不胜感激。
1条答案
按热度按时间quhf5bfb1#
下面是带有regexp\u extract的查询。
正则表达式将提取带有字母数字和特殊字符“-”的域根
希望这有帮助。