我有大量数据,其中一个字段就像 Wed Sep 15 19:17:44 +0100 2010 ,我需要在 Hive 中插入该字段。因为选择数据类型而感到困扰。我尝试了时间戳和日期,但从 csv 文件加载时获取空值。
请建议我。
先谢谢
答案 0 :(得分:2)
数据类型是String,因为它是文本。如果你想转换它,我会建议一个TIMESTAMP。但是,您需要在加载数据时自己进行此转换,或者之后(甚至更好)进行此转换。
要转换为时间戳,您可以使用以下语法:
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(<date_column>,'FORMAT')) as TIMESTAMP)
但您的格式似乎很复杂。我的建议是将它作为一个字符串加载,然后在第一个记录上做一个简单的查询,直到你让它工作。
SELECT your_column as string_representation,
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(<date_column>,'FORMAT')) as TIMESTAMP) as timestamp_representation
FROM your_table
LIMIT 1
您可以在此处找到有关格式的更多信息:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
我的建议是先查看一些子字符串,然后在查看时间和时区之前尝试仅转换日,月,年部分。