如何通过timestamp-window& amp;来自sparklyr中不同行的值?

时间:2018-04-19 06:04:55

标签: r apache-spark graph sparklyr

我的测试数据如下所示:(它的图形)

elemuid <- c(1, 2, 3, 4, 5, 6, 7)
timestamp <- c("2018-02-10 23:00:00", "2018-02-10 23:01:00", "2018-02-10 22:59:00", "2018-02-10 22:40:00", "2018-02-10 22:39:00", "2018-02-10 22:37:00", "2018-02-10 23:01:00")
from <- c(10, 8, 2, 12, 7, 8, 9)
to <- c(9, 10, 10, 3, 12, 7, 8)
value <- c(56, 26, 60, 50, 90, 80, 50)

df <- data.frame(elemuid, timestamp, from, to, value)
elemuid timestamp   from    to  value
1    2018-02-10 23:00:00 10  9   56
2    2018-02-10 23:01:00 8   10  26
3    2018-02-10 22:59:00 2   10   60
4    2018-02-10 22:40:00 12  3   50
5    2018-02-10 22:39:00 7   12  90
6    2018-02-10 22:37:00 8   7   80
7    2018-02-10 23:01:00 9   8   50

df <- copy_to(sc, df)

如您所见,spark-dataframe未排序。我正在寻找sparklyr的一些功能,以建立一对3分钟的窗口。因此,例如ID为3,1,7的行应该构建一对,因为它们共享有效的从实体到(2 - > 10 - > 9 - > 8)并且在3的时间窗内。分钟。 (在凌乱的世界中的完美例子)

然而,结果应如下所示:

elemuid1    elemuid2    elemuid3    timestamp1  timestamp2  timestamp3  from    to  value1  value2  value3
3   1   7   2018-02-10 22:59:00 2018-02-10 23:00:00 2018-02-10 23:01:00 2   8   60  56  50

这对我来说是一项非常艰巨的任务,一个闪闪发光的 -beginner。我的问题是我在同一个日期有多个 elemuid 。订购是因为这个原因非常艰难。我希望有些人可以帮助我。谢谢!

0 个答案:

没有答案