我正在Zeppelin笔记本中定义一些Scala函数,其中一个是window函数,它使用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。