我有一张table如下:
user_id email
u1 e1, e2
u2 null
我的目标是将其转换为以下格式:
user_id email
u1 e1
u1 e2
u2 null
为此,我在hive中使用了侧向视图explode()函数,如下所示:
select * FROM table
LATERAL VIEW explode (split(email ,',')) email AS email_id
但这样做的u2行被跳过,因为它在电子邮件中有空值。我们怎样才能在输出中也包含空值呢?
编辑:我正在使用一种解决方法,将此表与基表合并而不进行分解,但我认为数据将被再次扫描一次。我想知道有没有更好的方法。
1条答案
按热度按时间zd287kbt1#
包括
OUTER
在查询中获取具有空值的行比如说,
检查此链接->https://cwiki.apache.org/confluence/display/hive/languagemanual+lateralview#languagemanuallateralview-外侧视图