【问题标题】:Hive datatype confusionHive 数据类型混淆
【发布时间】:2016-08-26 06:38:12
【问题描述】:

我有一个大数据,其中一个字段类似于 Wed Sep 15 19:17:44 +0100 2010,我需要将该字段插入 Hive。

我在选择数据类型时遇到了麻烦。我尝试了时间戳和日期,但在从 CSV 文件加载时得到空值。

【问题讨论】:

    标签: date datetime hadoop hive timestamp


    【解决方案1】:

    数据类型是字符串,因为它是文本。如果你想转换它,我会建议一个 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

    我的建议是先连接一些子字符串,然后在查看时间和时区等之前尝试仅转换日、月、年部分。

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 2017-08-14
      • 2017-12-24
      • 1970-01-01
      • 2015-03-03
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多