2017-07-10 79 views
1

我使用sqoop import命令将数据从teradata sqooped到Hive。如何将bigint转换为配置单元中的datetime?

对于teradata中的其中一个表,我有一个日期字段。在sqooping之后,我的日期字段显示为具有bigint数据类型的时间戳。

但我需要日期字段作为日期数据类型在配置单元表中。任何人都可以请建议我在实现这个?

+1

什么_timestamp与bigint数据类型看起来像?请添加一些样品到您的帖子。 – Andrew

+0

去年我遇到过,我发现的唯一方法是将字段作为varchar作为sqoop导出的一部分进行投放。 – shainnif

+0

色调中的我的日期字段是一个13位数的时间戳,如下所示:1450051200000这是bigint类型。但是我希望日期类型,而不是在sqooping之后使用bigint。 –

回答

0

我有这个问题。我的方法是首先创建Hive表。您应该在Teradata数据类型和Hive版本数据类型之间进行对等。之后,您可以使用Sqoop参数--hive-table <table-name>来插入该表格。

+0

非常感谢您的建议。你能否在这里用一个例子来解释... –

+0

你可以发布与Teradata数据类型和我的Hive版本数据类型等价的sqoop导入命令吗? –

+0

@ Stack777它只是Hive中的一个CREATE TABLE语句,而不是sqoop中的额外参数。这样你就可以根据需要定义你的表模式。 – danielsepulvedab

1
select to_date(from_unixtime(your timestamp)); 

example: 

select to_date(from_unixtime(1490985000)); 
output:2017-04-01 

我希望它能工作。请让我知道如果我错了。

+0

您提到的格式按预期工作。但是,这只是一个阅读权。我期待的是,在sqoop导入之后,配置单元中的日期字段应该是datetime类型。 –