1
하이브 테이블에 나노 초 단위로 현재 타임 스탬프로 열을 만들고 싶습니다. 어떻게 데이터를 삽입하는 동안 그것을 할 수 있습니다.?하이브에서 현재 시간 소인 NUM 초 단위로 새 열을 만듭니다.
하이브 테이블에 나노 초 단위로 현재 타임 스탬프로 열을 만들고 싶습니다. 어떻게 데이터를 삽입하는 동안 그것을 할 수 있습니다.?하이브에서 현재 시간 소인 NUM 초 단위로 새 열을 만듭니다.
현재 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
기능을 사용할 수, 당신은 같은 새 테이블에 삽입 할 선택 쿼리에서 사용할 수있는