我有两个Hive表,其中一个包含Timestamp数据类型的日期值。如果我使用该键在一个特定记录上查询,它会正确显示日期值。 从表1中选择acct_key,account_open_date,其中acct_key = 1234;加入两个表后的Hive时间戳值更改
acct_id account_open_date
1234 1963-03-01 00:00:00
但是与另一个表加入这个表时,返回的时间戳值2031 选择a.acct_key,b.account_open_date 从TABLE_2换到价值在一年TABLE_1左外JOIN B 上。 acct_key = b.acct_key;
acct_id account_open_date
1234 2031-03-19 00:00:00
似乎这个问题只发生在Unix纪元时间(1970年)之前的日期值。任何建议?谢谢
感谢您的建议。想知道不是使用嵌套查询,我可以直接将其转换为如下所示的字符串。这两者有什么区别?选择a.acct_id ,cast(b.account_open_date as字符串)新的 ,other_columns from db.table1 a, left outer join db.table 2 b on a.acct_id = b.acct_id; –
如上所述,我无法重现您所看到的内容,但我在'join'期间以某种方式假设时间戳列被更改。所以我做了'cast'然后'join'。如果这是你所担心的,我认为不会有太大的性能差异。 – gobrewers14