将 SQL 查询转换为 Hive 查询
Posted
技术标签:
【中文标题】将 SQL 查询转换为 Hive 查询【英文标题】:Convert SQL Query to Hive Query 【发布时间】:2019-07-12 11:36:48 【问题描述】:有人可以帮我将此SQL
查询转换为hive
以获得相同的输出吗?
下面是查询
select count(email),
case substring_index(email,"@",-1)
when 'gmail.com' then 'GMAIL'
when 'googlemail.com' then 'GMAIL'
when 'yahoo.com' then 'YAHOO'
when 'ymail.com' then 'YAHOO'
else 'OTHER'
END as DOMAIN
from DATA1 group by 2;
【问题讨论】:
我只是在一个表中有电子邮件,在执行上述查询后,我得到了低于输出.. 我也需要在 hive 中相同的输出。请建议我在 hive 中的查询。+----------------+--------+ |计数(电子邮件)|域名 | +--------------+--------+ | 3 |邮件 | | 2 |其他 | | 3 |雅虎 | +--------------+--------+ 欢迎来到 ***。请参考***.com/help/how-to-ask 和***.com/help/mcve。请使用您帖子的编辑选项并将相关代码 sn-ps 放在问题描述中。由于字符数限制和可读性较差,请勿在 cmets 部分发布问题详细信息。 【参考方案1】:select count(email),
case split(email,'@')[1]
when 'gmail.com' then 'GMAIL'
when 'googlemail.com' then 'GMAIL'
when 'yahoo.com' then 'YAHOO'
when 'ymail.com' then 'YAHOO'
else 'OTHER'
end as DOMAIN
from DATA1
group by
case substring_index(email,"@",-1)
when 'gmail.com' then 'GMAIL'
when 'googlemail.com' then 'GMAIL'
when 'yahoo.com' then 'YAHOO'
when 'ymail.com' then 'YAHOO'
else 'OTHER'
end;
如果您希望 group by 2
工作,请阅读 group by position syntax 并相应地应用到您的配置单元版本。
【讨论】:
谢谢。我尝试在 hive 中用 split 函数替换子字符串。它正在工作 @Deepthi 满意请不要忘记采纳答案以上是关于将 SQL 查询转换为 Hive 查询的主要内容,如果未能解决你的问题,请参考以下文章