使用' first()'在分组数据库列上进行变异没有收集()首先

时间:2018-04-16 15:16:10

标签: sqlite dplyr dbplyr

不使用`collect()'功能我的代码错误

joined_table %>%
  filter(message.y == 'CURR') %>%
  filter(parameter.y == 'Volt') %>%
  select(flight, timestamp.y, value) %>%
  #collect() %>%
  group_by(flight) %>%
  mutate(first = first(timestamp.y)) %>%
  mutate(shifted = (timestamp.y - first)/ 60) 

错误:

Error: Window function `first_value()` is not supported by this database

我希望获取时间戳列并将其从零开始为每个航班进行绘图。如果我添加注释collect(),则该函数在将数据导入R时起作用。这是在pipline的早期阶段,由于数据库为80Gb,因此对我来说是一个严重的开销。

我有哪些替代方案?

  1. 我可以使用其他一些函数来获得与这两个变异相同的结果吗? (也许来自动物园的东西?)

  2. 我应该从SQLite迁移到支持first_value()的其他数据库吗?

  3. ...

1 个答案:

答案 0 :(得分:0)

RTFM

SQLite不支持窗口函数,因为有很多数据,所以迁移是有序的。