0

我有一个带有这些列的磁盘框架

key_a
key_b
key_c
value

假设磁盘框架是 200M 行,我想按 key_b 对其进行分组。此外,我希望保持底层磁盘框架完好无损,以便以后可以将其加入 key_c 上的其他内容或将其聚合到 key_a 上。我担心 srckeep 会影响底层磁盘框架。

这些中的任何一个都可以吗?如果是这样,我可以期望一个比另一个快吗?

  df %>% 
  srckeep("value", "key_b") %>%
  group_by(key_b) %>% 
  summarize(avg = mean(value)) %>% 
  collect
  df[
    keep = c("value", "key_b" 
    .(avg = mean(value)),
    .(key_b)
    ]

这些聚合中的任何一个将如何影响底层磁盘框架?我之前有一个经验,我将聚合分配给一个变量,然后运行delete(aggregation,但它删除了整个磁盘框架。

4

1 回答 1

1

当你应用一个操作时,它根本不会改变底层的 disk.frame!

srckeep只影响使用的内容!srckeep它在进行处理时仅将那些列加载到内存中。同样,它根本不会影响基础数据。

除非你这样做write_disk.frame(some_other_diskf, "to/location_of_disk.frame.df", overwrite=TRUE)会覆盖旧的disk.frame。

disk.frame 始终在磁盘上。你可以看到它在哪里attr(diskf, "path")

于 2020-09-17T02:24:08.057 回答