在配置单元中创建日期表

svujldwt  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(301)

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

7uzetpgm

7uzetpgm1#

您可以从kimball组下载excel格式的日期维度
将excel另存为csv,放入hdfs,在上面创建一个外部表。
我建议您创建date\u dim并保留其中的所有列。日期维度应在仓库中。您可以只选择“日期”列或创建包含必要列的视图。
您还可以在配置单元中生成日期范围,请参见以下答案:https://stackoverflow.com/a/55440454/2700344

sshcrbum

sshcrbum2#

你可以自己生成这些数据。
转到配置单元外壳并执行:

CREATE TABLE tbl1 (col1 date)

配置单元中日期类型的默认格式:yyyy-­毫米-­所以我们将以这种格式生成数据。
现在使用shell脚本生成数据。开放终端和火灾: 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
........

现在回到Hive壳并开火:

load data local inpath '/tmp/test.csv' into table tbl1;

你的数据表准备好了。

相关问题