我有一个大的数据,在这一个领域,如周三9月15日19:17:44+0100 2010年,我需要插入该领域在Hive。我在选择数据类型时遇到了麻烦。我尝试了时间戳和日期,但从csv文件加载时得到空值。
jjjwad0x1#
数据类型是字符串,因为它是文本。如果你想转换它,我建议用时间戳。但是,您需要在加载数据时自己进行转换,或者(甚至更好)在加载之后进行转换。要转换为时间戳,可以使用以下语法:
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我的建议是在你看时间和时区等之前,先把一些子字符串连接起来,试着只转换日、月、年的部分。
1条答案
按热度按时间jjjwad0x1#
数据类型是字符串,因为它是文本。如果你想转换它,我建议用时间戳。但是,您需要在加载数据时自己进行转换,或者(甚至更好)在加载之后进行转换。
要转换为时间戳,可以使用以下语法:
不过,你的格式似乎很复杂。我的建议是将其作为字符串加载,然后对第一条记录进行简单的查询,直到它正常工作为止。
您可以在此处找到有关格式的更多信息:http://docs.oracle.com/javase/6/docs/api/java/text/simpledateformat.html
我的建议是在你看时间和时区等之前,先把一些子字符串连接起来,试着只转换日、月、年的部分。