Erhalte den aktuellen unix_timestamp in Hive

Wie der Beitrag Wie wählt man das aktuelle date in Hive SQL , um das aktuelle date in Hive zu erhalten, kann unix_timestamp verwendet werden.

Aber ich habe es versucht

 select unix_timestamp(); 

und nur,

 unix_timestamp(); 

beide geben die Fehlermeldungen aus

 FAILED: ParseException line 1:23 mismatched input '<EOF>' expecting FROM near ')' in from clause FAILED: ParseException line 1:0 cannot recognize input near 'unix_timestamp' '(' ')' 

beziehungsweise.

Wie kann ich unix_timestamp korrekt in Hive verwenden?

Solutions Collecting From Web of "Erhalte den aktuellen unix_timestamp in Hive"

Da Hive keine Doppeltabelle verfügbar macht, möchten Sie möglicherweise eine Tabelle mit einzelnen Ausschnitten erstellen und diese Tabelle für diese Art von Abfragen verwenden.

Sie können dann Abfragen wie ausführen

 select unix_timestamp() from hive_dual; 

Eine Problemumgehung besteht darin, eine vorhandene Tabelle mit einer LIMIT 1- oder einer TABLESAMPLE-Klausel zu verwenden, die je nach Größe der Tabelle jedoch weniger effizient ist.

 # any_existing_table contains 10 lines # hive_dual contains 1 line select unix_timestamp() from any_existing_table LIMIT 1; # Time taken: 17.492 seconds, Fetched: 1 row(s) select unix_timestamp() from any_existing_table TABLESAMPLE(1 ROWS); # Time taken: 15.273 seconds, Fetched: 1 row(s) select unix_timestamp() from hive_dual ; # Time taken: 16.144 seconds, Fetched: 1 row(s) select unix_timestamp() from hive_dual LIMIT 1; # Time taken: 14.086 seconds, Fetched: 1 row(s) select unix_timestamp() from hive_dual TABLESAMPLE(1 ROWS); # Time taken: 16.148 seconds, Fetched: 1 row(s) 

Mehr Details :

Hat Hive etwas zu DUAL?

BLOG POST: Doppeltisch im Bienenstock

Um das date außerhalb des timestempels zu ermitteln, verwenden Sie die function to_date.

Probieren Sie das unten

 select to_date(FROM_UNIXTIME(UNIX_TIMESTAMP())) as time from table_name;