我正在使用HDP Sandbox对Hive进行一些研究。
我有一个CSV文件,日期格式为9-11-2015,我想创建一个时间戳列来存储数据。该命令如下所示:
create external table product (
productid string,
...
startdate timestamp)
row format delimited fields terminated by ';'
location '/poc/product' TBLPROPERTIES('skip.header.line.count'='1');
我获得了startdate的空值,因为预期的格式是YYYY-MM-DD。这是一个ETL问题,我想知道在不触及数据源的情况下解决此转换的正确方法是什么。
我想知道我的选择。 我可以做到以下几点:
我不太喜欢这种方法。任何想法/替代品?你会如何解决这个问题?
答案 0 :(得分:0)
迄今为止我最好的选择。使用字符串字段创建原始表。然后创建一个像
的视图创建视图product_ as 选择productid, concat(from_unixtime(unix_timestamp(startdate,'dd-MM-yyyy'),'yyyy-MM-dd'),'00:00:00.000')作为startdate 来自产品
这是正确的方法吗?