0
Ich würde gerne eine Fensterfunktion in Scala verwenden.Fensterfunktionen/scala/funken 1.6
ich eine CSV-Datei, die ist die folgende:
id;date;value1
1;63111600000;100
1;63111700000;200
1;63154800000;300
Wenn ich versuche, eine Fensterfunktion über diesen Datenrahmen anzuwenden, manchmal funktioniert es und manchmal scheitert es:
val df = loadCSVFile()
val tw = Window.orderBy(date).partitionBy(id).rangeBetween(-5356800000,0)
df.withColumn(value1___min_2_month, min(df.col("value1")).over(tw))
+---+-----------+--------------------+
| id| date|value1___min_2_month|
+---+-----------+--------------------+
| 1|63111600000| 100|
| 1|63111700000| 100|
| 1|63154800000| 100|
+---+-----------+--------------------+
So funktioniert es! Aber wenn ich mit einer größeren Zahl versuchen (die Reihe der vorherigen exemple enthält) Ich habe folgendes Ergebnis
val tw =
Window.orderBy(date).partitionBy(id).rangeBetween(-8035200000,0) \n
df.withColumn(value1___min_3_month, min(df.col("value1")).over(tw))
+---+-----------+--------------------+
| id| date|value1___min_3_month|
+---+-----------+--------------------+
| 1|63111600000| null|
| 1|63111700000| null|
| 1|63154800000| null|
+---+-----------+--------------------+
Mein Problem ist, dass diese Zahl in der Tat in einer Variablen (langer Typ) und mit einer Variablen funktioniert es nicht –
Dann übergeben Sie einfach die Variable. – pedrofurla
es ist nicht genau das, siehe meine Bearbeitung vorher :) –