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();
}
}
上記のJavaコードのうち、ジャーを作成します(tonanotime.jarを言う)と、現在のナノ時間を返すために、UDF関数を作成するためにjarファイルを追加します。今
ADD JAR /home/amit/tonanotime.jar;
create TEMPORARY FUNCTION toNanoTime AS 'NanoTimeUdf';
、toNanoTime
機能が利用可能です、あなたは次のように新しいテーブルに挿入するために、選択クエリに使用することができます。 例えば
insert into table select toNanoTime() from other_table;