窗口功能的orderBy问题-两个降序键

时间:2019-07-10 02:34:27

标签: scala apache-spark

我正在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。

0 个答案:

没有答案