如何在hive中创建一个表,该表应包含从2016年1月1日到今天(2016年1月1日到2016年10月12日)的所有日期?该表只有一列,即日期列。谢谢。
7uzetpgm1#
您可以从kimball组下载excel格式的日期维度将excel另存为csv,放入hdfs,在上面创建一个外部表。我建议您创建date\u dim并保留其中的所有列。日期维度应在仓库中。您可以只选择“日期”列或创建包含必要列的视图。您还可以在配置单元中生成日期范围,请参见以下答案:https://stackoverflow.com/a/55440454/2700344
sshcrbum2#
你可以自己生成这些数据。转到配置单元外壳并执行:
CREATE TABLE tbl1 (col1 date)
配置单元中日期类型的默认格式:yyyy-毫米-所以我们将以这种格式生成数据。现在使用shell脚本生成数据。开放终端和火灾: gedit /tmp/test.sh 复制此代码:
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-012016-01-022016-01-032016-01-04........
test.csv
现在回到Hive壳并开火:
load data local inpath '/tmp/test.csv' into table tbl1;
你的数据表准备好了。
2条答案
按热度按时间7uzetpgm1#
您可以从kimball组下载excel格式的日期维度
将excel另存为csv,放入hdfs,在上面创建一个外部表。
我建议您创建date\u dim并保留其中的所有列。日期维度应在仓库中。您可以只选择“日期”列或创建包含必要列的视图。
您还可以在配置单元中生成日期范围,请参见以下答案:https://stackoverflow.com/a/55440454/2700344
sshcrbum2#
你可以自己生成这些数据。
转到配置单元外壳并执行:
配置单元中日期类型的默认格式:yyyy-毫米-所以我们将以这种格式生成数据。
现在使用shell脚本生成数据。开放终端和火灾:
gedit /tmp/test.sh
复制此代码:默认情况下,您没有执行权限,请使用:
现在开火:
你有数据吗
test.csv
```2016-01-01
2016-01-02
2016-01-03
2016-01-04
........
load data local inpath '/tmp/test.csv' into table tbl1;