- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有看起来像这样的数据:
userid,eventtime,location_point
4e191908,2017-06-04 03:00:00,18685891
4e191908,2017-06-04 03:04:00,18685891
3136afcb,2017-06-04 03:03:00,18382821
661212dd,2017-06-04 03:06:00,80831484
40e8a7c3,2017-06-04 03:12:00,18825769
userid
的5分钟窗口内有2个或更多
location_point
,则标记为true。我有一个想法,使用
lag
函数在由
userid
划分的窗口中查找,该窗口的范围介于当前时间戳和接下来的5分钟之间:
from pyspark.sql import functions as F
from pyspark.sql import Window as W
from pyspark.sql.functions import col
days = lambda i: i * 60*5
windowSpec = W.partitionBy(col("userid")).orderBy(col("eventtime").cast("timestamp").cast("long")).rangeBetween(0, days(5))
lastURN = F.lag(col("location_point"), 1).over(windowSpec)
visitCheck = (last_location_point == output.location_pont)
output.withColumn("visit_check", visitCheck).select("userid","eventtime", "location_pont", "visit_check")
AnalysisException: u'Window Frame RANGE BETWEEN CURRENT ROW AND 1500 FOLLOWING must match the required frame ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING;
最佳答案
根据您的数据:
让我们添加一个带有时间戳(以秒为单位)的列:
df = df.withColumn('timestamp',df_taf.eventtime.astype('Timestamp').cast("long"))
df.show()
+--------+-------------------+--------------+----------+
| userid| eventtime|location_point| timestamp|
+--------+-------------------+--------------+----------+
|4e191908|2017-06-04 03:00:00| 18685891|1496545200|
|4e191908|2017-06-04 03:04:00| 18685891|1496545440|
|3136afcb|2017-06-04 03:03:00| 18382821|1496545380|
|661212dd|2017-06-04 03:06:00| 80831484|1496545560|
|40e8a7c3|2017-06-04 03:12:00| 18825769|1496545920|
|4e191908|2017-06-04 03:11:30| 18685891|1496545890|
+--------+-------------------+--------------+----------+
w = Window.partitionBy('location_point').orderBy('timestamp').rangeBetween(-60*5,0)
df = df.withColumn('occurrences_in_5_min',F.count('timestamp').over(w))
df.show()
+--------+-------------------+--------------+----------+--------------------+
| userid| eventtime|location_point| timestamp|occurrences_in_5_min|
+--------+-------------------+--------------+----------+--------------------+
|40e8a7c3|2017-06-04 03:12:00| 18825769|1496545920| 1|
|3136afcb|2017-06-04 03:03:00| 18382821|1496545380| 1|
|661212dd|2017-06-04 03:06:00| 80831484|1496545560| 1|
|4e191908|2017-06-04 03:00:00| 18685891|1496545200| 1|
|4e191908|2017-06-04 03:04:00| 18685891|1496545440| 2|
|4e191908|2017-06-04 03:11:30| 18685891|1496545890| 1|
+--------+-------------------+--------------+----------+--------------------+
add_bool = udf(lambda col : True if col>1 else False, BooleanType())
df = df.withColumn('already_occured',add_bool('occurrences_in_5_min'))
df.show()
+--------+-------------------+--------------+----------+--------------------+---------------+
| userid| eventtime|location_point| timestamp|occurrences_in_5_min|already_occured|
+--------+-------------------+--------------+----------+--------------------+---------------+
|40e8a7c3|2017-06-04 03:12:00| 18825769|1496545920| 1| false|
|3136afcb|2017-06-04 03:03:00| 18382821|1496545380| 1| false|
|661212dd|2017-06-04 03:06:00| 80831484|1496545560| 1| false|
|4e191908|2017-06-04 03:00:00| 18685891|1496545200| 1| false|
|4e191908|2017-06-04 03:04:00| 18685891|1496545440| 2| true|
|4e191908|2017-06-04 03:11:30| 18685891|1496545890| 1| false|
+--------+-------------------+--------------+----------+--------------------+---------------+
关于apache-spark - 如何在时间戳值上使用lag和rangeBetween函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45531662/
library(dplyr) library(stats) 我正在使用滞后变量运行大量回归,并且我的 R 控制台与上述包有冲突。我知道我可以通过为每次回归输入“dplyr::lag()”来规避这个问题
正如标题所说。加载 pglm 后,lag 停止正常工作。 library(pglm) c(1,2,3,4) %>% lag() 该对象被转换为时间序列,并且不再与 tibbles 兼容。 即使卸载pg
正如标题所说。加载 pglm 后,lag 停止正常工作。 library(pglm) c(1,2,3,4) %>% lag() 该对象被转换为时间序列,并且不再与 tibbles 兼容。 即使卸载pg
我目前正在为我的投资组合网站构建一个修改后的光标。不幸的是,当我尝试滚动和移动光标时,我的光标出现滞后。但是,当我从 HTML、CSS 和 JavaScript 中删除所有其他元素并且只有与我的光标相
如果浏览器应用程序执行计算量较大或阻塞的操作,则事件循环将会延长。 有没有办法获得有关事件循环长度的定性指标? 这是为了衡量客户端 Web 应用程序在客户端上呈现的“容易程度”(即是否有足够的计算资源
我有一个问题。我正在 tkinter 中制作平台游戏,但遇到问题:我现在有:玩家、积木和硬币。我正在更新玩家的 Action 及其动画和硬币的动画,由于某种原因,当我投入太多硬币时,玩家的 Actio
我有一个包含 3 个 fragment 的 ViewPager Fragment。每个都有一个图像作为背景和一个 TextView。 TextView 始终绝对位于屏幕左侧(而不是 Fragment
当我尝试在 CLOB 列上使用 LAG 函数时遇到问题。 假设我们有一张 table create table test ( id number primary key, not_cl
您好,我是 SQL 的新手,希望有人能帮助我解决这个问题。我一直在这里和那里使用滞后函数,但想知道是否有办法重写它以使其进入总和范围。因此,我想将前 12 个月的每个时间段加在一起,而不是之前的一个月
我清楚地记得 T-SQL 永远不会让您混合使用 LAG 和 WHERE。例如, SELECT FOO WHERE LAG(BAR) OVER (ORDER BY DATE) > 7 永远不会工作。无论
我的数据文件是许多结构相似的文本文件的合并: 行“新文件开始”, 行与文件名, “数据线”有两列:域和事件数 每个文件的此类“数据行”数量可能从 0 到数十万不等目标是添加新列,每一行将指示它相关的文
我正在尝试在 R 中复制以下公式: Xt = Xt-1 * b + Zt * (1-b) 我正在使用以下代码 t %>% mutate(x= ifelse(week == 1, z, NaN))
我今天来找你是因为我正在努力处理涉及 LAG 函数的查询(仅供引用,我使用的是 PostgreSQL)。我有一张表格,其中包含每月按国家/地区销售给另一个产品的产品数量。该表定义如下: create
当我尝试在 tibble 中的一列字符上使用滞后函数(来自 dplyr 库)时,我在 R 中遇到以下错误: Error in mutate_impl(.data, dots) : Expecting
我有两个向量,subject 和 target。我想根据两个现有向量之间的比较创建一个新向量,比较元素 lagged。我已经使用下面的循环解决了这个问题,但我本质上想知道是否有使用 apply 的更优
我有一个日期表,我需要在其中存储前一行的 val当前行中的列。但是,我不能使用 LAG子句,因为存在缺失的日期,并且只有在前一个直接日期存在时才应提取前一个值并将其存储在当前行中。因此我必须(我认为)
我是 SQL Server 的新手,我对 lag() 函数有一些疑问。 我必须计算两个用户事件之间的平均距离(以天为单位)。然后,我必须对所有用户进行 GROUP BY,计算每个用户行之间的所有日期差
嗨,我正在我的网络应用程序中实现实时搜索(=输入时搜索)功能。目前我正在使用 keyup 事件通过 ajax post 发送搜索请求,例如 $('#SearchField').keyup(functi
这里可能存在 BigQuery 错误?我正在运行一个查询,该查询使用 LAG() 函数来获取先前的时间采样值。例子: 架构: id: STRING time: TIMESTAMP 询问: SELECT
如何告诉 LAG 函数获取最后一个“非空”值? 例如,请参阅下面的表,其中 B 列和 C 列上有一些 NULL 值。我想用最后一个非空值填充空值。我尝试使用 LAG 函数来做到这一点,如下所示: ca
我是一名优秀的程序员,十分优秀!