1
我想在nano表中使用當前時間戳在nano秒中創建一列。我怎麼能在插入數據時做到這一點?使用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;