Zuerst müssen Sie TalendDate.diffDate(column1,column2,"pattern")
verwenden, um den Zeitunterschied zu erhalten. Wenn Sie dann den aktuellen Wert mit dem vorherigen vergleichen möchten (in der gleichen Spalte), können Sie eine Sequenz für Ihren Fluss festlegen, damit Sie erkennen können, welcher der vorherige Wert ist. Dann müssen Sie nur zweimal Ihren Fluss lesen und einen inneren Join zwischen der aktuellen Sequenz und der aktuellen Sequenz -1 haben, um das aktuelle Datum und das vorherige Datum zu erhalten.
Erste Subjob: YourFlow -> tMap -> tHashOutput
In tMap, eine neue Spalte "Reihe" zu Ihrem Feld hinzufügen und Numeric.sequence("s1",1,1)
verwenden. Auf diese Weise haben alle Zeilen eine ID.
Dann lesen Sie zweimal Ihre Hash, und kommen Ströme auf "Sequenz - 1"
tHashInput_1----|
|--tMap--->Output
tHashInput_2----|
die TalendDate.diffDate() -Methode in der Ausgabe Stoßen, mit den beiden Termine Felder. Hier
zum Vergleich i tMemorizeRows für bin mit dem letzten Wert des Arrays bekommen, aber leider ist ich nicht den vorherigen Wert aus dem Array bekommen, ich bin Wenn ich null als Ausgabe bekomme, weiß ich nicht, warum ich nicht –
bekomme, also hast du die Lösung versucht, die ich zur Verfügung gestellt habe? – Corentin
Ich habe das versucht, Inzwischen versuche ich auch die anderen Wege. Deine Lösung funktioniert –