• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

使用nano中的当前时间戳创建新的列在Hive中

sql 来源:user491 12次浏览

我想在nano表中使用当前时间戳在nano秒中创建一列。我怎么能在插入数据时做到这一点?使用nano中的当前时间戳创建新的列在Hive中

===========解决方案如下:

当前current_timestamp功能蜂巢,不纳秒时间。

但是你总是可以用create your own functions使用配置单元UDF来处理nano秒时间戳。

下面是UDF的示例,它将返回纳秒时间的值long

import org.apache.hadoop.hive.ql.exec.UDF; 
import org.apache.hadoop.hive.ql.udf.UDFType; 

@UDFType(stateful = true) 
public class NanoTimeUdf extends UDF{ 

    public long evaluate() { 
     return System.nanoTime(); 
    } 

} 

创建一个JAR出上面的Java代码(说tonanotime.jar),并添加JAR创建UDF函数返回当前时间纳米。

ADD JAR /home/amit/tonanotime.jar; 
create TEMPORARY FUNCTION toNanoTime AS 'NanoTimeUdf'; 

现在,toNanoTime功能可用,您可以选择查询使用插入到新表,如: e.g

insert into table select toNanoTime() from other_table; 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)