当窗口/分区与正向填充一起使用时,将条件添加到pyspark sql中的last()函数

Lai Wei

我得到的代码来自以下链接:https : //johnpaton.net/posts/forward-fill-spark/它具有我要完成的任务的某些背景。

from pyspark.sql import Window
from pyspark.sql.functions import last

# define the window
window = Window.partitionBy('location')\
               .orderBy('time')\
               .rowsBetween(-sys.maxsize, 0)

# define the forward-filled column
filled_column = last(spark_df['temperature'], ignorenulls=True).over(window)

# do the fill
spark_df_filled = spark_df.withColumn('temp_filled_spark', filled_column)

基本上,last()函数用于查找最后一个非空值的状态。如果所有值都为null,则返回null。

但是,如果该组中的所有列均为空,我想分配一个默认值。我尝试了不同的方法,但无法弄清楚。

因此,基本上,如果某个位置的温度都为零,那么我希望有一种方法将其设置为默认值。

Some examples:
I want to fill them with default values for the case below:

location  temp                temp
1         null                0
1         null      =====>    0
1         null                0

I do not want to fill them with default values for the case below:

location  temp                 temp
1         null                 null
1          50      ======>      50
1          60                   60

马赞内查

如果给定位置的任何记录包含非空值,则可以定义另一列以用作指示符。例如:

window_2 = Window.partitionBy('location').rowsBetween(-sys.maxsize, sys.maxsize)
max_column = max(spark_df['temperature']).over(window_2)

然后,将该列与您的列一起使用filled_column以有条件地填写最终结果:

temp_filled_spark = when(max_column.isNull(),0).otherwise(filled_column)
spark_df_filled = spark_df.withColumn('temp_filled_spark', temp_filled_spark)

可能不是很优雅或性能很好,但是应该可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将水印添加到当前录制的视频中并与水印一起保存

来自分类Dev

如何将ImageView和ListView一起添加到NavigationDrawer中

来自分类Dev

将argv与函数一起使用时出错

来自分类Dev

将.Change()与dropdownlistFor一起使用(希望将选定的值作为文本添加到另一个div中)

来自分类Dev

与onclick事件一起使用时,如何在document.write()函数中添加文本?

来自分类Dev

SQL将STUFF函数添加到此查询中

来自分类Dev

如何将sql添加到javaScipt函数中?

来自分类Dev

将新条目与每个新条目一起添加到表顶部的表视图控制器中

来自分类Dev

如何通过此文本框将多行一起添加到不同的div / span标签中?

来自分类Dev

如何将单选/复选框数据与其他字段一起添加到表单中?

来自分类Dev

将countif函数与动态条件一起使用

来自分类Dev

将FILTER函数与多个条件一起使用

来自分类Dev

将 while 和 if 函数与条件更改一起使用

来自分类Dev

无法添加对象并将列表一起添加到对象列表中

来自分类Dev

是否可以在SQL中将SELECT函数与LAST函数结合使用?

来自分类Dev

如何从窗体将数组添加在一起并将其添加到数据库的一个字段中?

来自分类Dev

Ansible-将set_fact模块与with_items一起使用时,如何继续将新关键字附加到字典中?

来自分类Dev

当使用关键字与函数结果一起使用时,将引发System.ObjectDisposedException

来自分类Dev

当我将 avg 与 count 和 sum 一起使用时,组函数的使用无效

来自分类Dev

在Excel 2003中将两个条件与SUMIF函数一起使用

来自分类Dev

我在python 3中将生成器与输入函数一起使用时遇到问题

来自分类Dev

将Cooked函数与cout一起使用时,应用程序崩溃

来自分类Dev

将k-means聚类与Silhouette函数一起使用时,如何选择k?

来自分类Dev

将IS NOT NULL与COUNT函数一起使用时得到不正确的结果-MySQL

来自分类Dev

将预编译的Azure函数与其他方法一起使用时出错

来自分类Dev

有没有一种方法可以将数字值一起添加到字符串中而不会循环?

来自分类Dev

将Excel与ODBC连接一起使用时,应使用哪种SQL标准?

来自分类Dev

将WHERE与SUM函数SQL一起使用

来自分类Dev

将SQL聚合函数与多个联接一起使用

Related 相关文章

  1. 1

    将水印添加到当前录制的视频中并与水印一起保存

  2. 2

    如何将ImageView和ListView一起添加到NavigationDrawer中

  3. 3

    将argv与函数一起使用时出错

  4. 4

    将.Change()与dropdownlistFor一起使用(希望将选定的值作为文本添加到另一个div中)

  5. 5

    与onclick事件一起使用时,如何在document.write()函数中添加文本?

  6. 6

    SQL将STUFF函数添加到此查询中

  7. 7

    如何将sql添加到javaScipt函数中?

  8. 8

    将新条目与每个新条目一起添加到表顶部的表视图控制器中

  9. 9

    如何通过此文本框将多行一起添加到不同的div / span标签中?

  10. 10

    如何将单选/复选框数据与其他字段一起添加到表单中?

  11. 11

    将countif函数与动态条件一起使用

  12. 12

    将FILTER函数与多个条件一起使用

  13. 13

    将 while 和 if 函数与条件更改一起使用

  14. 14

    无法添加对象并将列表一起添加到对象列表中

  15. 15

    是否可以在SQL中将SELECT函数与LAST函数结合使用?

  16. 16

    如何从窗体将数组添加在一起并将其添加到数据库的一个字段中?

  17. 17

    Ansible-将set_fact模块与with_items一起使用时,如何继续将新关键字附加到字典中?

  18. 18

    当使用关键字与函数结果一起使用时,将引发System.ObjectDisposedException

  19. 19

    当我将 avg 与 count 和 sum 一起使用时,组函数的使用无效

  20. 20

    在Excel 2003中将两个条件与SUMIF函数一起使用

  21. 21

    我在python 3中将生成器与输入函数一起使用时遇到问题

  22. 22

    将Cooked函数与cout一起使用时,应用程序崩溃

  23. 23

    将k-means聚类与Silhouette函数一起使用时,如何选择k?

  24. 24

    将IS NOT NULL与COUNT函数一起使用时得到不正确的结果-MySQL

  25. 25

    将预编译的Azure函数与其他方法一起使用时出错

  26. 26

    有没有一种方法可以将数字值一起添加到字符串中而不会循环?

  27. 27

    将Excel与ODBC连接一起使用时,应使用哪种SQL标准?

  28. 28

    将WHERE与SUM函数SQL一起使用

  29. 29

    将SQL聚合函数与多个联接一起使用

热门标签

归档