Currently getTimestampValue casts Timestamp to Date and returns Date.
Hive Timestamp type stores time with nanosecond precision.
Timestamp class has getNanos method to extract nanoseconds.
Date class has getTime method which returns unix time in milliseconds.
So, it order to be able to get nanoseconds from Timestamp fields GenericUDF.getTimestampValue should return Timestamp instead of Date.