apache-spark - 大型 Spark 数据帧的 Window Lag 函数性能不佳
问题描述
假设我们有一个非常大的 spark 数据框,我们希望在其中创建一个滞后列:
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,那么有没有不同的方法来提高这个任务的可伸缩性?
解决方案
推荐阅读
- sql - 如何使用提示用户在sql中的位置?
- ionic3 - 在 Windows 应用程序中按退格键触发离子搜索栏错误事件
- google-maps - 如何使用谷歌地图插件添加标记并在标记上设置自定义点击事件?
- r - R Studio 包安装问题
- itk - 不同像素间距和切片厚度的 ITK 过滤器
- android - 如何在android editText中显示两位小数?
- javascript - 删除使用“signature_pad”生成的签名周围的空白/空格
- angular - 使用 APP_INITIALIZER 将自定义数据注入服务
- javascript - 组件未在重定向时呈现
- r - 如何在R中根据因子的水平复制行