假设一个表包含3列,我会像这样呈现一个查询:
SELECT col1, col2, col3, null as col4 from table;
在这种情况下,空值不能正确反映。我在UNION操作中收到错误“Runtime NULL exception”。请帮助解决这个问题
答案 0 :(得分:0)
您使用此Hadoop的分发版本。我在IDH上尝试了这个,它运行良好。您还可以粘贴完整的错误消息
hive(默认)>描述table4;
行
fld1 string
fld2 string
hive(默认)>从表4中选择fld1,fld2,null作为fld3;
A 1 NULL
B 1 NULL
C 1 NULL
根据提问者的评论添加以下内容,
我试过这个演员,它现在描述为字符串。你可以根据自己的需要进行投射
从表4中选择fld1,fld2,cast(null as string)fld3创建表table6;
hive(默认)>描述表6; 行
fld1字符串 fld2字符串 fld3字符串
答案 1 :(得分:0)
我在一些示例表上尝试了这个,它对我没有任何错误。示例查询:
select * from
(select col1, NULL as col2 from table1 LIMIT 10
UNION ALL
select col1, col2 from table2LIMIT 10) q1