2016-07-21 36 views
0

Ich habe das folgende Feld: 1388481000000 als die Anzahl von Millisekunden aus der Unix-Epoche verstrichen ist (1970-01-01 UTC)Apache PIG - Konvertieren millseconds in Unix Timestamp

Wie kann ich auf Unix-Timestamp-Format konvertieren? Ich versuche zu verwenden:

ToUnixTime(1388481000000,'dd/MM/yyyyHH:mm:ss','GMT') 

aber es gibt mir Fehler ...

Wie kann ich in Unix-Timestamp-Format konvertieren? Danke vielmals!

Antwort

0

Sie vermischen Dinge. ToUnixTime Die Syntax ist ToUnixTime (datetime), wobei der Parameter ein datetime-Objekt ist. Sie haben die Millisekunden seit der Unix-Epoche (1970-01-01 UTC). Ich nehme an, Sie versuchen, die Millisekunden in ein datetime-Objekt zu konvertieren Sie müssen ToDate verwenden und die Syntax ist ToDate (Millisekunden).

ToDate(1388481000000) 
+0

Ich habe mein Feld als Chararray definiert ... Welchen Typ empfehlen Sie, die Transformation zu machen? – SaCvP

+0

Verwenden Sie long, um die Millisekunden zu laden. Sie können immer noch chararray verwenden, haben aber wie dieses ToDate ((long) 1388481000000) geworfen. Siehe hier für Datentypen https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html# Daten + Typen –