使用nano中的当前时间戳创建新的列在Hive中
我想在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;
以上是 使用nano中的当前时间戳创建新的列在Hive中 的全部内容, 来源链接: utcz.com/qa/260761.html