从Hive的电子邮件地址中选择顶级域名

时间:2019-03-12 16:01:01

标签: regex hive hiveql

我正在尝试在emailaddress列中查找顶级域的长度。

我尝试了regexp_replace的一些迭代,但是没有成功。

以下命令周围的尝试均失败:

length(regexp_replace(emailaddress,'@\.(.*)',1)) --counts before '@' characters

预期输出:

emailaddress = asdfasdf@gmail.com
length = 3
emailaddress = asdfasdf@gmail.co
length = 2

1 个答案:

答案 0 :(得分:0)

您可以使用

vals, vecs = eigs(super_op.reshape(chi**2, chi**2), k=chi*(chi-1), which='LM')
# find the index corresponding to the largest eigenvalue
arg = np.argmax(np.abs(vals))
rho = vecs[:,arg].reshape(chi, chi)
# regularize the output array 
rho *= np.abs(rho[0, 0])/rho[0, 0]

length(regexp_extract(emailaddress,'[.]([^.]+)$', 1)) 正则表达式将匹配一个点,然后捕获一个或多个除点以外的字符,直到输入的末尾。 [.]([^.]+)$参数将使1函数仅返回在组1中捕获的子字符串,而regexp_extract将返回该值的长度。

如果主机部分的电子邮件中没有点,则可以进一步限制模式(以禁止在否定字符类中匹配length

@