如何在hive中创建一个表格,该表格应包含从2016年1月1日到今天(2016年1月1日至2016年10月12日)的所有日期?
该表只有一列,即日期列。
感谢。
答案 0 :(得分:2)
您可以自己生成此数据。
转到Hive shell并执行:
CREATE TABLE tbl1 (col1 date)
配置单元中日期类型的默认格式:YYYY-MM-DD。所以我们将以这种格式生成数据。
现在使用shell script生成数据。打开终端并开火:
gedit /tmp/test.sh
复制此代码:
#!/bin/bash
DATE=2016-01-01
for i in {0..285}
do
NEXT_DATE=$(date +%Y-%m-%d -d "$DATE + $i day")
echo "$NEXT_DATE"
done
默认情况下,您没有执行权限,请使用:
chmod 777 /tmp/test.sh
现在火了:
/tmp/test.sh >/tmp/test.csv
您在test.csv
2016-01-01
2016-01-02
2016-01-03
2016-01-04
........
现在回到蜂巢壳并开火:
load data local inpath '/tmp/test.csv' into table tbl1;
您的数据表准备就绪。
答案 1 :(得分:1)
您可以从Kimball Group
以excel格式下载日期维度将Excel保存为csv,放入HDFS,在其上创建一个外部表。
我建议你创建date_dim并保留其中的所有列。日期维度应该在仓库中。您只能选择日期列或创建包含必要列的视图。
您也可以在Hive中生成日期范围,请参阅以下答案:https://stackoverflow.com/a/55440454/2700344