【发布时间】:2021-10-25 02:13:26
【问题描述】:
我有一个如下所示的 rdd:
timestamp,user_id,search_id
[2021-08-14 14:38:31,user_a,null]
[2021-08-14 14:42:01,user_a,ABC]
[2021-08-14 14:55:12,user_a,null]
[2021-08-14 14:56:19,user_a,null]
[2021-08-14 15:01:36,user_a,null]
[2021-08-14 15:02:22,user_a,null]
[2021-08-15 07:38:07,user_b,XYZ]
[2021-08-15 07:39:59,user_b,null]
我想通过用 user_id 分组的最新非空值(如果有)填充“search_id”中的空值,将没有 search_id 的事件与以前的 search_ids 关联。
因此,我的输出将如下所示:
timestamp,user_id,search_id
[2021-08-14 14:38:31,user_a,null]
[2021-08-14 14:42:01,user_a,ABC]
[2021-08-14 14:55:12,user_a,ABC]
[2021-08-14 14:56:19,user_a,ABC]
[2021-08-14 15:01:36,user_a,ABC]
[2021-08-14 15:02:22,user_a,ABC]
[2021-08-15 07:38:07,user_b,XYZ]
[2021-08-15 07:39:59,user_b,XYZ]
我找到了使用 org.apache.spark.sql.functions.last 和此处的窗口的 spark 数据帧的解决方案 --> Spark Window function last not null value 但我的上下文目前不允许我将 rdd 转换为数据帧,所以我想知道是否有任何你知道如何做到这一点。
【问题讨论】:
-
“我的上下文不允许我将 rdd 转换为数据帧”是什么意思?
-
抱歉,应该指定:由于遗留问题,我需要在仍在使用 spark
标签: scala apache-spark rdd