Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 窗口函数中的多重计算_Scala_Apache Spark - Fatal编程技术网

Scala 窗口函数中的多重计算

Scala 窗口函数中的多重计算,scala,apache-spark,Scala,Apache Spark,在spark中,我试图计算同一窗口中的三个事务。因为我有另一个例子,多次使用相同的窗口,这需要花费太多的时间。我将我的示例缩短如下。是否可以在一个窗口函数中执行此操作,如下所示。它正在抛出预期的错误 val sonuc = data.withColumn("meanError", struct(mean($"errorGeneral"),min($"errorGeneral")).over( Window.partitionBy($"id").orderBy($"time".asc).r

在spark中,我试图计算同一窗口中的三个事务。因为我有另一个例子,多次使用相同的窗口,这需要花费太多的时间。我将我的示例缩短如下。是否可以在一个窗口函数中执行此操作,如下所示。它正在抛出预期的错误

val sonuc = data.withColumn("meanError",
  struct(mean($"errorGeneral"),min($"errorGeneral")).over(
  Window.partitionBy($"id").orderBy($"time".asc).rangeBetween(-240*3600,
  0)))

谢谢。

以下各项没有问题:

val w = Window.partitionBy($"id").orderBy($"time".asc).rangeBetween(-240*3600, 0)

data.select($"*"
  mean($"errorGeneral").over(w),
  min($"errorGeneral").over(w)
)
内部Spark只需洗牌和订购一次

如果这是缓慢的,那是因为在Spark中窗口函数是最昂贵的操作,特别是像这样的宽帧