嗨,我有下表:
ID------ |--- time
======================
5------- | ----200101
3--------| --- 200102
2--------|---- 200103
12 ------|---- 200101
16-------|---- 200103
18-------|---- 200106
现在我想知道一年中某个月出现的频率。我不能使用分组依据,因为这只计算表中出现的次数。但是当一年中某个月没有出现时,我也希望得到一个0。所以输出应该是这样的:
time-------|----count
=====================
200101--|-- 2
200102--|-- 1
200103--|-- 1
200104--|-- 0
200105--|-- 0
200106--|-- 1
对不起,表格格式不好,我希望它仍然清楚我的意思。我很感激任何帮助
1条答案
按热度按时间wfveoks01#
您可以提供包含所有年和月信息的年-月表。我为您编写了一个脚本来生成这样的csv文件:
保存在
year_month.sh
然后运行它。然后你会得到一个文件year_month.csv
包含从1970年到2015年的年份和月份。你可以改变start_year
以及end_year
指定年份范围。然后,上传
year_month.csv
文件到hdfs。例如,之后,您可以加载
year_month.csv
进入Hive。例如,最后,您可以将新表与您的表连接起来以获得最终结果。例如,假设您的表是
id_time
:注意:您需要对上述语句进行微小的修改(如path、type)。