配置单元创建时间戳为AM / PM的时间戳查询

时间:2018-11-22 12:35:38

标签: hive hiveql

我有一个只有一个日期列的文件,其中的日期格式为'2017/10/2 10:56:00'

我想在此文件上创建一个外部配置单元表,但是由于AM / PM格式的配置单元时间戳无法识别它,因此是否有指向它的指针?

3 个答案:

答案 0 :(得分:1)

您可以创建具有时间戳格式的配置单元表,然后在<Output> <BusinessObjects> { for $bi in //BusinessIdentifier return <BusinessObject> <BIKey>{string-join($bi/ancestor::BusinessObjects/BusinessObject/string-join(.//BValue, ':'), '|')}</BIKey> { $bi/BKey, $bi/BValue } <BOID>{$bi/ancestor::BusinessObject/string-join(.//BValue, ':')}</BOID> </BusinessObject> } </BusinessObjects> </Output> 中映射数据时间戳格式。

示例:

我有一个txt文件,其中包含以下数据:

<Output>
    <BusinessObjects>
        {
            //BusinessIdentifier/
            <BusinessObject>
                <BIKey>{string-join(ancestor::BusinessObjects/BusinessObject/string-join(.//BValue, ':'), '|')}</BIKey>
                {
                    BKey, 
                    BValue
                }
                <BOID>{ancestor::BusinessObject/string-join(.//BValue, ':')}</BOID>
            </BusinessObject>
        }
    </BusinessObjects>
</Output>

使用以下命令创建配置单元表:

table properties

从表中选择:

bash$ cat t1.txt
      9/1/2016 11:31:21 AM
      10/2/2017 10:56:00 AM

答案 1 :(得分:1)

您可以将string用作数据类型,而不是使用timestamp作为数据类型

答案 2 :(得分:0)

好吧。我认为您的数据类型是时间戳还是字符串格式都不会有太大的区别。由于您尝试使用时间戳格式来实现什么目的,我们也可以使用字符串格式