【发布时间】:2020-01-24 21:16:44
【问题描述】:
我在 Hive 中有一个表,其中 athr_name 和 post_date 字段 90% 为空(在 Hive 中由“?”表示)。我想查询表和 GROUP BY athr_name、post_date、page_nm 和 visit_date 以获取访问次数和访问者数。但是,我还想将空值组合并替换为 athr_name 和 post_date 不为空的值(page_nm 包含唯一值,因此只能有正确的 athr_name 或空值)。
换句话说,我有这个:
athr_name post_date page_nm visit_date visit visitors
1 Steve 9/1/2019 /page1/content/ 20191014 45 11
2 Steve 9/1/2019 /page1/content/ 20191015 62 38
3 Steve 9/1/2019 /page1/content/ 20191016 28 49
4 Steve 9/1/2019 /page1/content/ 20191207 54 70
5 Steve 9/1/2019 /page1/content/ 20191208 39 26
6 ? ? /page1/content/ 20191014 28 24
7 ? ? /page1/content/ 20191015 17 63
8 ? ? /page1/content/ 20191016 48 40
9 ? ? /page1/content/ 20191017 47 14
10 ? ? /page1/content/ 20191018 33 1
我想将该数据折叠成这个结果:
athr_name post_date page_nm visit_date visit visitors
1 Steve 9/1/2019 /page1/content/ 20191014 73 35
2 Steve 9/1/2019 /page1/content/ 20191015 79 101
3 Steve 9/1/2019 /page1/content/ 20191016 76 89
4 Steve 9/1/2019 /page1/content/ 20191017 47 14
5 Steve 9/1/2019 /page1/content/ 20191018 33 1
6 Steve 9/1/2019 /page1/content/ 20191207 54 70
7 Steve 9/1/2019 /page1/content/ 20191208 39 26
如果它是列而不是行,它可以通过合并函数来解决。非常感谢任何帮助!
【问题讨论】: