大型Spark数据帧的Window Lag函数性能不佳

时间:2018-05-28 06:41:31

标签: apache-spark pyspark

假设我们有一个非常大的火花数据帧,我们希望创建一个滞后列:

lag_df = df.withColumn('lag',func.lag(df['id'],1)
                       .over(Window.partitionBy().orderBy('id')))

+---+----+
| id| lag|
+---+----+
|  1|null|
|  2|   1|
|  3|   2|
|  4|   3|
|  5|   4|
   .    .
   .    .

我发现上述内容最终会在单个执行程序上运行。这适用于小型数据帧,但它根本不可扩展。 我们无法使用paritionBy ,那么是否有不同的方法来改善此任务的可扩展性?

0 个答案:

没有答案