Оконные функции / scala / spark 1.6
Я хотел бы использовать оконную функцию в Scala.
У меня есть файл CSV, который является следующим:
id;date;value1
1;63111600000;100
1;63111700000;200
1;63154800000;300
Когда я пытаюсь применить оконную функцию к этому фрейму данных, иногда это работает, а иногда не удается:
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|
+---+-----------+--------------------+
Так что это работает! Но когда я пытаюсь с большим числом (которое содержит строку предыдущего примера), я получаю следующий результат
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|
+---+-----------+--------------------+
1 ответ
Суффикс вашего номера с L
:
scala> -10000000000
<console>:1: error: integer number too large
-10000000000
^
scala> -10000000000L
res0: Long = -10000000000