我有一个数据文件,我希望导入到 Hive 中,其中包含时间戳。时间戳的格式为 MM/dd/yyyy HH:mm:ss。
我想创建一个包含时间戳类型的表来保存这个值,但是我不知道如何直接导入数据。
我的解决方法是将我的日期作为字符串导入到临时表中,然后从这个临时表中读取数据到我的永久表中进行时间格式转换。
所以,我的整个两步加载函数看起来像这样:
create table tempTable(
timeField string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";
--load data local here!
create table finalTable(
timeField timestamp
) stored as RCFILE;
insert into table finalTable select
from_unixtime( unix_timestamp(timeField,'MM/dd/yyyy HH:mm') )
from tempTable;
所以最后我的问题:-)
这是“正确”或“最佳”的方式吗?我是否使用了低效/愚蠢的解决方法?
谢谢!
最佳答案
另一种解决方法是将数据文件的日期时间格式更改为 yyyy/MM/dd HH:mm:ss
然后它将数据作为时间戳数据类型直接转换为 hive 表。
希望这有帮助。
关于hive - 使用任意时间戳格式将数据导入 Hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019174/