4 Viertel Gleitender Durchschnitt


Bei der Berechnung eines laufenden gleitenden Mittels ist es sinnvoll, den Mittelwert in der mittleren Zeitperiode einzutragen. Im vorigen Beispiel wurde der Durchschnitt der ersten 3 Zeiträume berechnet und neben der Periode 3 platziert. Wir konnten den Mittelwert in der Mitte des Zeitintervall von drei Perioden, das heißt, neben Periode 2. Dies funktioniert gut mit ungeraden Zeitperioden, aber nicht so gut für sogar Zeitperioden. Also, wo würden wir den ersten gleitenden Durchschnitt platzieren, wenn M 4 Technisch, würde der Moving Average bei t 2,5, 3,5 fallen. Um dieses Problem zu vermeiden, glätten wir die MAs unter Verwendung von M 2. So glätten wir die geglätteten Werte Wenn wir eine gerade Anzahl von Ausdrücken mitteln, müssen wir die geglätteten Werte glätten Die folgende Tabelle zeigt die Ergebnisse mit M 4. Um meine Frage zu vereinfachen, können wir Sagen, ich habe eine Tabelle mit vierteljährlichen Daten und Umsatzzahlen durch die Sicherheit. Monthenddate, ID, Sales Ich brauche zu berechnen 4 Quartal gleitende Durchschnitte von Umsatz pro ID. Ich versuchte, das folgende zu tun: Der erste Schritt, zum eines Index der Daten zu verursachen arbeitete fein, aber das BERECHNEN MOVING DURCHSCHNITT Teil gibt mir einen Fehler Ein Objekt - oder Spaltenname fehlt oder leer. Wenn ich das MAX (monthenddate) aus der SELECT-Zeile herausnehme läuft es ohne Fehler, gibt mir aber ein leeres Tabellenergebnis. Vielleicht ist mein Ansatz grundsätzlich fehlerhaft. Vielen Dank im Voraus für jede Hilfe. Wird auch mit einer Unterabfrage versucht: FROM TempDateIndex l WHERE r. dateidx4 GROUP BY ID Msg 156, Level 15, State 1, Zeile 3 Falsche Syntax in der Nähe des Keyword SELECT. Msg 102, Level 15, State 1, Zeile 6 Falsche Syntax in der Nähe.).David, Yes, MapReduce soll auf einer großen Datenmenge arbeiten. Und die Idee ist, dass im Allgemeinen die Karte und reduzieren Funktionen sollte nicht kümmern, wie viele Mapper oder wie viele Reduzierer gibt es, die nur Optimierung. Wenn Sie sorgfältig über den Algorithmus ich gepostet denken, können Sie sehen, dass es doesn39t Angelegenheit, welche Mapper bekommt, welche Teile der Daten. Jeder Eingabesatz ist für jede reduzierte Operation verfügbar, die es benötigt. Ndash Joe K 18. September um 22:30 Im besten Fall meines Verständnisses gleitende Durchschnitt ist nicht schön Karten MapReduce-Paradigma, da seine Berechnung im Wesentlichen Schiebefenster über sortierte Daten ist, während MR Verarbeitung von nicht geschnittenen Bereichen von sortierten Daten. Lösung, die ich sehe, ist wie folgt: a) Um benutzerdefinierte Partitionierer zu implementieren, um zwei verschiedene Partitionen in zwei Durchläufen zu machen. In jedem Lauf erhalten Ihre Reduzierer verschiedene Bereiche der Daten und berechnen gleitenden Durchschnitt, wo passend, werde ich versuchen zu illustrieren: Im ersten Lauf Daten für Reduzierer sollte: R1: Q1, Q2, Q3, Q4 R2: Q5, Q6, Q7, Q8 . Hier werden Sie gleitenden Durchschnitt für einige Qs cacluate. Im nächsten Lauf sollten Ihre Reduzierer Daten wie erhalten: R1: Q1. Q6 R2: Q6. Q10 R3: Q10..Q14 Und caclulate den Rest der gleitenden Durchschnitte. Dann müssen Sie Ergebnisse zu aggregieren. Idee der benutzerdefinierten Partitionierer, dass es zwei Modi der Operation haben wird - jedes Mal in gleiche Bereiche, aber mit einigen Verschiebung. In einem Pseudocode sieht es so aus. Partition (keySHIFT) (MAXKEYnumOfPartitions) Dabei gilt: SHIFT wird aus der Konfiguration übernommen. MAXKEY-Maximalwert der Taste. Ich nehme zur Vereinfachung an, dass sie mit Null beginnen. RecordReader, IMHO ist keine Lösung, da es auf bestimmte Split beschränkt ist und kann nicht über Splits Grenze gleiten. Eine weitere Lösung wäre, um benutzerdefinierte Logik der Aufteilung der Eingangsdaten (es ist Teil der InputFormat) zu implementieren. Es kann getan werden, um 2 verschiedene Folien, ähnlich wie die Partitionierung zu tun.

Comments