配置单元数据类型混淆

xnifntxz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(333)

我有一个大的数据,在这一个领域,如周三9月15日19:17:44+0100 2010年,我需要插入该领域在Hive。
我在选择数据类型时遇到了麻烦。我尝试了时间戳和日期,但从csv文件加载时得到空值。

jjjwad0x

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
我的建议是在你看时间和时区等之前,先把一些子字符串连接起来,试着只转换日、月、年的部分。

相关问题