Hadoop 将日期字符串转换为“;年月日”;格式

Hadoop 将日期字符串转换为“;年月日”;格式,hadoop,hive,Hadoop,Hive,我刚刚看到了这个例子。我怎样才能解决这个问题呢 配置单元元存储包含一个名为problem1的数据库,该数据库包含一个名为customer的表。customertable包含9000万条客户记录(90000000条),每条记录都有一个生日字段 示例数据(生日以粗体显示) 对于解决方案表中的每一行,用“MM/DD/YY”格式的日期字符串替换生日字段的内容 MM是零填充月份(01-12), DD是零填充日(01-31), YY是零填充的2位数年份(00-99) 你不能用一般的方法来做,你必须测试每一种

我刚刚看到了这个例子。我怎样才能解决这个问题呢

配置单元元存储包含一个名为problem1的数据库,该数据库包含一个名为customer的表。customertable包含9000万条客户记录(90000000条),每条记录都有一个生日字段

示例数据(生日以粗体显示)

对于解决方案表中的每一行,用“MM/DD/YY”格式的日期字符串替换生日字段的内容

MM是零填充月份(01-12),
DD是零填充日(01-31),
YY是零填充的2位数年份(00-99)


你不能用一般的方法来做,你必须测试每一种可能的情况。 你可以这样做

select coalesce(
    from_unixtime(unix_timestamp(doj ,"MMM dd, yyyy"), "MM/dd/yy"),
    from_unixtime(unix_timestamp(doj ,"MM/dd/yyyy"), "MM/dd/yy"),
    from_unixtime(unix_timestamp(doj ,"MM/dd/yy"), "MM/dd/yy")
)

2位数的年份不足以存储19xx年和20xx年。在你们的例子中,你们有2003年和1969年,我可以在源表中看到日期字段的许多组合。你能提供可能的列表吗?@Ambrish..有10000条记录的列表..不确定会有多少种格式..有通用方法吗没有通用方法检查此链接以获取格式:
select from_unixtime(unix_timestamp(doj,'MM/dd/yyyy')) from temp1;
select coalesce(
    from_unixtime(unix_timestamp(doj ,"MMM dd, yyyy"), "MM/dd/yy"),
    from_unixtime(unix_timestamp(doj ,"MM/dd/yyyy"), "MM/dd/yy"),
    from_unixtime(unix_timestamp(doj ,"MM/dd/yy"), "MM/dd/yy")
)