在配置单元中创建日期表

时间:2016-10-12 13:35:46

标签: hive calendar

如何在hive中创建一个表格,该表格应包含从2016年1月1日到今天(2016年1月1日至2016年10月12日)的所有日期?

该表只有一列,即日期列。

感谢。

2 个答案:

答案 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