Ich habe eine Protokolldatei, die eine Zeitstempelspalte enthält. Der Zeitstempel ist im Unix-Epochen-Zeitformat.
Ich möchte eine Partition basierend auf einem Zeitstempel mit den Partitionen Jahr, Monat und Tag erstellen.
Bisher habe ich das gemacht, aber es wirft einen Fehler auf.
%Vor%Hier ist mein Code.
%Vor%Oof, das sieht hässlich aus. Verwenden Sie diese Funktion in Hive:
%Vor% Oder wenn der Zeitstempel in ms
anstelle von Sekunden steht:
Dadurch wird ein Unix-Zeitstempel in ein JJJJ-MM-TT HH: MM: SS-Format konvertiert, und Sie können die folgenden Funktionen verwenden, um das Jahr, den Monat und den Tag abzurufen:
%Vor%Bei neueren Releases von Hive und SparkSQL sind die Datentypoptionen für Datum und Typ verfügbar. Folgendes sollte in Hive sowie Spark SQL
funktionieren %Vor%Wenn Sie das Datum im benutzerdefinierten Format konvertieren müssen, verwenden Sie Folgendes:
%Vor%
welches das Datum als Jahr zurückgibt, z.B. 201708
Diese Abfrage zu der Liste hinzufügen, in der der Zeitstempel für eine Zeichenfolgepartition in die Datumszeichenfolge yyyy-MM-dd konvertiert werden muss:
%Vor%Tags und Links function hive database-partitioning