In SparkSQL ist es möglich, eine Fensterabfrage mit Spalten 2+ nach Spalten zu definieren, aber es scheint nicht möglich zu sein, Bereichsklauseln basierend auf diesen Spalten zu definieren.Wie definiert man mehrere Bereichsklauseln in WindowSpec?
Zum Beispiel
select
row_id,
count(*) over (
partition by group_id
order by filter_key1, filter_key2
range between 12 preceding and 12 following
range between 5 preceding and 1 preceding
) as the_count
from table
Die obige fehlschlägt (wenn auch vielleicht die Syntax aus? Daumen ...)
Kann es in einer einzigen Anweisung ähnlich der oben getan werden?
Die Absicht eine Reihe von Zeit zu aggregieren ist vorbei, die bis zum Beginn des Tages des Start abschneidet und halten das Ende an dem vorhergehenden Rekord . Also, ein bisschen peinlich, weil ich den Schnittpunkt zwischen den beiden Filtern bekommen möchte. Angepasst, ich möchte alle Datensätze von N Tagen zurück (beginnend um 00:00) bis kurz bis zur aktuellen Zeit (die in der Mitte des Tages sein könnte). – taw
Ihr zweites Beispiel wäre toll, wenn die Daten disjunkt wären. – taw
@ tau. . . Sie sollten eine andere Frage mit Beispieldaten und gewünschten Ergebnissen stellen. Diese Frage scheint ganz anders zu sein als das, wonach Sie suchen. –