Я определяю некоторые функции Scala в записной книжке Zeppelin, и одна из них - это оконная функция, которая сортирует результат в порядке убывания по двум ключам сортировки, используя orderBy()
. У меня импортированы следующие пакеты:
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.Column
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.expressions.WindowSpec
import org.apache.spark.sql.functions.udf
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._
Рассматриваемая функция изначально была определена следующим образом (фактические переменные изменены):
val sortDesc = Window.partitionBy("my_id").orderBy(desc("date1"),
desc("date2"))
Я получаю следующую ошибку:
<console>:85: error: ')' expected but 'val' found.
val sortDesc = Window.partitionBy("my_id").orderBy(desc("date1"),
desc("date2"))
Из предыдущих сообщений SO я пробовал следующее:
val sortDesc = Window.partitionBy($"my_id").orderBy($"date1".desc,
$"date2".desc))
val sortDesc = Window.partitionBy("my_id").orderBy(col("date1").desc,
col("date2").desc)
val sortDesc = Window.partitionBy("my_id").orderBy(col(date1).desc,
col(date2).desc)
Все это привело к одному и тому же сообщению об ошибке. Оба столбца сортировки представляют собой даты в формате yyyy-mm-dd
, если это уместно. Любая помощь в решении ошибки приветствуется - TIA.