2015-10-29 10 views
7

Alle diese Daten, die ich im Modul R ausführen in Azure Machine Learning manipuliert habe, schreiben in der Ausgabe als leer aus - also diese Datumsspalten existieren, aber diese Spalten enthalten keinen Wert.So definieren Sie die aktuelle Zeitzone in Azure ML für die Laufzeitfunktion, unbekannte Zeitzone 'localtime'

Die Quellvariablen, die Datumsinformationen enthalten, die ich in den Datenrahmen einlese, haben zwei unterschiedliche Datumsformate. Sie sind wie folgt:

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’) 

ich die Protokolldatei in AML untersucht und AML kann nicht die lokale Zeitzone finden. Die Protokolldatei Warnungen speziell: [ModuleOutput] 1: In strptime (x, Format, tz = tz): [ModuleOutput] nicht aktuelle Zeitzone 'C' identifizieren: [ModuleOutput] bitte Umgebungsvariable 'TZ' [ ModuleOutput] [ModuleOutput] 2: In strptime (x, Format, tz = tz): unbekannt Zeitzone 'Lokalzeit'

ich für strptime hier

auf eine andere Antwort in Bezug auf Einstellung Standardzeitzone bezeichnet

unknown timezone name in R strptime/as.POSIXct

Ich habe meinen Code geändert, um die globale Umgebungszeit explizit zu definieren Variable.

Das Problem besteht weiterhin - als Ergebnis AzureML schreibt diese Variablen nicht aus, sondern schreibt diese Spalten als Leerzeichen aus.
(. Dieser Code in R-Studio arbeitet, wo ich die lokale Zeit nehme an aus dem System genommen wird)

Nach zwei auf dieses Problem Blog-Posts zu lesen, scheint es, dass Azure ML nicht einige Datum Zeitformate unterstützt:

http://blogs.msdn.com/b/andreasderuiter/archive/2015/02/03/troubleshooting-error-1000-rpackage-library-exception-failed-to-convert-robject-to-dataset-when-running-r-scripts-in-azure-ml.aspx

http://www.mikelanzetta.com/2015/01/data-cleaning-with-azureml-and-r-dates/

Also habe ich versucht zu POSIXct zu konvertieren, bevor es in den Ausgabestrom zu senden, die ich getan habe, wie folgt: tenantusage $ Date1 = as.POSIXct (tenantusage $ Date1, "% m /% d /% Y", tz = "EST5EDT"); pächterusage $ Date2 = as.POSIXct (pächterususe $ Date2, "% m /% d /% Y", tz = "EST5EDT");

Aber stoßen Sie auf das gleiche Problem. Die Informationen in diesen Variablen weigern sich, auf die Ausgabe zu schreiben. Date1 und Date2 Spalten sind leer.

Bitte beraten!

dank

+0

Den gleichen Fehler erhalten, kann keine Problemumgehung finden – SochiX

Antwort

0

Hallo SingingData und SochiX,

Traurig über diese Quelle der Frustration zu hören! Ich finde, dass die folgende Variante SingingData das Codebeispiel funktioniert für mich (in einer CRAN 3.1.0 Modul getestet):

usage <- data.frame(list(Date1 = c('8/6/2015', '8/20/2015', '7/9/2015'), 
         Date2 = c('4/16/2015 0:00', '7/1/2015 0:00', '7/1/2015 0:00'))) 
usage$Date1 <- as.POSIXlt(usage$Date1, "%m/%d/%Y",tz="GMT") 
usage$Date2 <- as.POSIXlt(usage$Date2, "%m/%d/%Y",tz="GMT") 

usage$Date1 <- format(usage$Date1, "%m/%d/%Y") 
usage$Date2 <- format(usage$Date2,"%m/%d/%Y") 

usage$Date1 <- as.Date(usage$Date1, "%m/%d/%Y") 
usage$Date2 <- as.Date(usage$Date2, "%m/%d/%Y") 

maml.mapOutputPort("usage"); 

ich as.POSIXlt() verwendet habe statt as.POSIXct(). Ich hoffe, dass dies hilft, Ihre Arbeit in R zu entsperren.

Verwandte Themen