2017-12-18 6 views

답변

1

현재 current_timestamp은 하이브에서 작동하며 나노 초 단위로 시간을 제공하지 않습니다.

그러나 언제든지 create your own functions에서 하이브 UDF를 사용하여 나노 초 타임 스탬프를 처리 할 수 ​​있습니다.

다음은 나노 시간의 long 값을 반환하는 UDF의 예입니다.

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(); 
    } 

} 

위의 자바 코드의 밖으로 항아리 만들기 (tonanotime.jar 말) 현재 나노 시간을 반환하는 UDF 함수를 만드는 항아리를 추가합니다. 예컨대

insert into table select toNanoTime() from other_table; 
:

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

는 이제 toNanoTime 기능을 사용할 수, 당신은 같은 새 테이블에 삽입 할 선택 쿼리에서 사용할 수있는

관련 문제