我想收集一篇专栏文章 NULL
在那一列中有一些值…但是 collect_list
忽略 NULL
只收集其中包含值的。有没有办法找回 NULL
还有其他价值观吗?
SELECT col1, col2, collect_list(col3) as col3
FROM (SELECT * FROM table_1 ORDER BY col1, col2, col3)
GROUP BY col1, col2;
实际col3值
0.9
NULL
NULL
0.7
0.6
结果col3值
[0.9, 0.7, 0.6]
我希望有一个Hive解决方案,看起来像这样 [0.9, NULL, NULL, 0.7, 0.6]
在应用collect\u列表之后。
2条答案
按热度按时间5sxhfpxr1#
注意:如果您的列是字符串,那么即使您的外部文件没有该列的任何数据,它也不会有空值
您可以使用类似“col3为null且col3不为null”的验证检查来创建where条件
2eafrhcq2#
这个函数是这样工作的,但我发现了以下解决方法。在查询中添加case-when语句以检查并保留空值。
现在,因为您有一个string元素('null'),所以整个结果集是一个字符串数组。最后,只需将字符串数组转换为双值数组。