我有一个外部分区的Hive表。其列之一是名为OLDDATE的字符串,其日期具有不同的格式(DD-MM-YY)。我想更新该列并以YYYY-MM-DD格式存储日期。所有年份均为20XX。
所以我想到了
选择CONCAT('20',SPLIT(OLDDATE,'-')[2],'-',SPLIT(OLDDATE,'-')[1],'-',SPLIT(OLDDATE,'-')[0] )从表中
这给了我我想要的格式的日期。现在如何用这个新日期覆盖旧日期?
最佳答案
您可以通过使用表本身的内容覆盖表来实现更新,就像更改转换的日期字段一样,就像下面的伪代码一样:
INSERT OVERWRITE table
SELECT
col1
, col2
...
, CONCAT('20',SPLIT(OLDDATE ,'-')[2],'-',SPLIT(OLDDATE ,'-')[1],'-',SPLIT(OLDDATE ,'-')[0]) AS olddate
...
, coln
FROM table;
关于hadoop - 配置单元更新列中的所有值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29288199/