Wszystkie te daty, które zmanipulowałem w module Execute R w uczeniu maszynowym Azure, wypisz jako puste w wynikach - to znaczy istnieją kolumny daty, ale w tych kolumnach nie ma wartości.Jak zdefiniować bieżącą strefę czasową w usłudze Azure ML dla funkcji strptime, nieznana strefa czasowa "czas lokalny"
Zmienne źródłowe, które zawierają informacje o dacie, które odczytuję w ramce danych, mają dwa różne formaty daty. Są one następujące:
usage$Date1=c(‘8/6/2015’ ‘8/20/2015’ ‘7/9/2015’)
usage$Date2=c(‘4/16/2015 0:00’, ‘7/1/2015 0:00’, ‘7/1/2015 0:00’)
Sprawdziłem plik dziennika w AML, a AML nie może znaleźć lokalnej strefy czasowej. Ostrzeżenia dotyczące pliku dziennika w szczególności: [ModuleOutput] 1: W strptime (x, format, tz = tz): [ModuleOutput] nie można zidentyfikować bieżącej strefy czasowej "C": [ModuleOutput] proszę ustawić zmienną środowiskową "TZ" [ ModuleOutput] [ModuleOutput] 2: W strptime (x, format, tz = tz): nieznany czasowej 'localtime'
odniosłem innej odpowiedzi dotyczące domyślnym ustawieniem strefy czasowej dla strptime tutaj
unknown timezone name in R strptime/as.POSIXct
Zmieniłem swój kod, aby wyraźnie określić globalny czas środowiska zmienna.
Sys.setenv(TZ='GMT')
####Data frame usage cleanup, format and labeling
usage<-as.data.frame(usage)
usage$Date1<-as.character(usage$Date1)
usage$Date1<-as.POSIXct(usage$Date1, "%m/%d/%Y",tz="GMT")
usage$Date1<-format(usage$Date1, "%m/%d/%Y")
usage$Date1<-as.Date(usage$Date1, "%m/%d/%Y")
usage<-as.data.frame(usage)
usage$Date2<- as.POSIXct(usage$Date2, "%m/%d/%Y",tz="GMT")
usage$Date2<- format(usage$Date2,"%m/%d/%Y")
usage$Date2<-as.Date(usage$Date2, "%m/%d/%Y")
usage<-as.data.frame(usage)
Problem nadal występuje - w wyniku tego AzureML nie zapisuje tych zmiennych, raczej wypisując te kolumny jako puste.
(Ten kod działa w systemie R Studio, w którym zakładam, że czas lokalny pobierany jest z systemu.)
Po przeczytaniu dwóch wpisów na blogu dotyczących tego problemu wydaje się, że usługa Azure ML nie obsługuje niektórych formatów daty:
http://www.mikelanzetta.com/2015/01/data-cleaning-with-azureml-and-r-dates/
Więc próbowałem konwertować do POSIXct przed wysłaniem go do strumienia wyjściowego, co mam zrobić w następujący sposób: tenantusage $ Data wprowadzenia1 = as.POSIXct (tenantusage $ date1, "% m /% d /% Y", tz = "EST5EDT"); tenantusage $ Date2 = as.POSIXct (tenantusage $ Date2, "% m /% d /% Y", tz = "EST5EDT");
Ale napotkasz ten sam problem. Informacje w tych zmiennych nie pozwalają wypisać na wyjście. Kolumny Date1 i Date2 są puste.
Proszę doradzić!
dzięki
Uzyskanie tego samego błędu, nie można znaleźć obejścia – SochiX