2017-03-10 3 views
0

Ich lese einen großen Datenrahmen mit SparkR. Ich möchte mit dem Monat einer Spalte zusammenzufassen, die das Datum im Zeichenformat enthält:String nach Datum konvertieren SparkR

head(select(df, df$booking_date)) 
    booking_date 
1 29-JUL-16 
2 29-JUL-16 
3 06-JUL-16 
4 21-JUL-16 
5 28-JUL-16 
6 28-JUL-16 

Allerdings, wenn ich versuche, um den Monat zu drucken:

head(select(df, month(df$booking_date))) 
    month(booking_date) 
1     NA 
2     NA 
3     NA 
4     NA 
5     NA 
6     NA 

Es nicht den richtigen Wert zurück. Es scheint, es nicht das Format nicht versteht, aber die Ausführung der folgende Befehl den Monat() -Methode sehr unglücklich macht:

head(select(df, month(as.Date(df$booking_date, format = "%d/%b/%y"))) 

So, wie konnte ich den Monat aus der booking_date Säule erhalten, um zu GROUP_BY() die Daten?

Danke!

Carlos

Antwort

0

Versuchen folgenden Code Name des Monats zu erhalten

a <- as.list(collect(select(df, df$booking_date))) 
b <- SparkR:::lapply(a$booking_date, function(x){months(as.Date(x, format = "%d-%b-%y"))}) 
print(b)